AES-Verschlüsselung Java-Ungültige Schlüssellänge

Ich versuche zu erstellen, die eine AES-Verschlüsselung Methode, aber für einige Grund, warum ich immer

java.security.InvalidKeyException: Key length not 128/192/256 bits

Hier ist der code:

public static SecretKey getSecretKey(char[] password, byte[] salt) throws NoSuchAlgorithmException, InvalidKeySpecException{
    SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
    //NOTE: last argument is the key length, and it is 256
    KeySpec spec = new PBEKeySpec(password, salt, 1024, 256);
    SecretKey tmp = factory.generateSecret(spec);
    SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");
    return(secret);
}


public static byte[] encrypt(char[] password, byte[] salt, String text) throws NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidKeyException, InvalidParameterSpecException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException{
    SecretKey secret = getSecretKey(password, salt);

    Cipher cipher = Cipher.getInstance("AES");

    //NOTE: This is where the Exception is being thrown
    cipher.init(Cipher.ENCRYPT_MODE, secret);
    byte[] ciphertext = cipher.doFinal(text.getBytes("UTF-8"));
    return(ciphertext);
}

Kann jemand sehen, was ich falsch mache? Ich denke, dass es möglicherweise etwas zu tun mit der SecretKeyFactory-Algorithmus, aber das ist die einzige, die ich finden kann, der unterstützt am Ende system, das ich entwickle gegen. Jede Hilfe würde geschätzt werden. Danke.

  • Können Sie bitte fügen Sie die Ausnahme?
  • Es ist eine Antwort, die in einem früheren Beitrag auf diesen link. Hoffe, das hilft!
  • so, es scheint, dass die java-Instanz nicht unterstützt, was ich brauche: 'java.Sicherheit.InvalidKeyException mit der Meldung "Illegal key size oder Standard-Parameter" '
  • Auch ist es eine Einschränkung auf die Chiffre oder der SecretKey?
  • Dies mag zwar theoretisch eine Antwort auf die Frage, vorzuziehen, umfassen die wesentlichen Teile der Antwort hier, und geben Sie den link zur Referenz.
InformationsquelleAutor wuntee | 2010-04-02
Schreibe einen Kommentar