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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 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...):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.