Ich habe die folgenden Fehler und ich habe ein wenig stecken: Exception in thread „main“java.security.InvalidKeyException: Illegale Schlüsselgröße oder Standardparameter in android
java.security.InvalidKeyException: Illegal key size or default parameters
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1011)
at javax.crypto.Cipher.implInit(Cipher.java:786)
at javax.crypto.Cipher.chooseProvider(Cipher.java:849)
at javax.crypto.Cipher.init(Cipher.java:1213)
at javax.crypto.Cipher.init(Cipher.java:1153)
at net.nakou.indie.wtext.engineClass.Session.cryptString(Session.java:52)
Ich bin fest, weil alle Antworten Ich habe über die Java Kryptografie-Erweiterung (JCE) gesprochen, die normalerweise in das Android-SDK enthalten sind. Also ich denke mein Problem ist nicht dieses.
Ich muss etwas vergessen haben, aber ich kann was nicht finden. Vielleicht ist mein Code falsch (es ist mein erster Ansatz der Kryptographie in Java, ich bin kein Experte, und der folgende Code ist meist ein paar Kopien-Pasten von Tutorials).
Ich benutze diesen Code Krypta und einen String zu entschlüsseln:
public String cryptString(String s) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException, BadPaddingException, IllegalBlockSizeException {
byte[] KeyData = this.cryptKey.getBytes();
SecretKeySpec KS = new SecretKeySpec(KeyData, "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE, KS);
String ret = new String(cipher.doFinal(s.getBytes("UTF-8")));
return ret;
}
public String decryptString(byte[] s) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
byte[] KeyData = this.cryptKey.getBytes();
SecretKeySpec KS = new SecretKeySpec(KeyData, "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, KS);
String ret = new String(cipher.doFinal(s));
return ret;
}
Und den folgenden Schlüssel:
private String cryptKey = "[email protected]@FDFqf";
Danke Jungs.
Lange Rede kurzer Sinn, egal ob es ein Teil von ADK ist, müssen Sie es ändern alle gleich in der $ java/jre/lib/security wie jede Java-Anwendung. –