Bonjour,
je viens vers vous afin d'avoir des informations. Est-il possible de valider la clé SecretKeySpec quand nous faisons un cryptage symétrique ?
En effet l'utilisateur peut chiffrer les fichiers généré. Cependant quand je souhaite faire des tests j'ai des erreurs.
La commande:
System.out.println("cipher = " + Cipher.getMaxAllowedKeyLength("<ALGO>"));
me retourne:
et quand j'utilise le code (exemple avec AES mais j'ai l'erreur avec DES...):
1 2 3 4 5
|
Cipher cipher = Cipher.getInstance("AES");
SecretKeySpec key = new SecretKeySpec(strPassword.getBytes(), "AES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] ecrypted = cipher.doFinal(input.getBytes()); |
j'obtiens:
1 2 3 4 5 6
| Exception in thread "main" java.security.InvalidKeyException: Invalid AES key length: 1 bytes
at com.sun.crypto.provider.AESCrypt.init(AESCrypt.java:87)
at com.sun.crypto.provider.ElectronicCodeBook.init(ElectronicCodeBook.java:93)
at com.sun.crypto.provider.CipherCore.init(CipherCore.java:469)
at com.sun.crypto.provider.CipherCore.init(CipherCore.java:386)
at com.sun.crypto.provider.AESCipher.engineInit(AESCipher.java:186) |
Donc ma question. Est-il possible de valider le mdp ou existe t'il d'autres solutions ? Je pensais passer par en hachage de la clé avec SHA-256 par exemple mais j'ai le même problème.
Merci.
Partager