Problème de décryptage Blowfish
Bonjour,
Je dois développer deux fonctions permettant de crypter et de décrypter avec en paramètre un string et une clef.
Pour cet excercice j'ai choisi d'utiliser le cryptage Blowfish, j'ai bien réussi a crypter mais lors du décryptage une erreure survient et je ne la comprend pas:
"Input length must be multiple of 8 when decrypting with padded cipher"
Mes fonctions :
Fonction pour crypter:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public String encrypt() throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
// création secret key + mdp
String password = "bouboul";
String key = "toto";
// génère tableau de byte
byte[] keydata = key.getBytes();
// encryption de la clef
SecretKeySpec KS = new SecretKeySpec(keydata, "Blowfish");
// creation cipher
try {
Cipher cipher = Cipher.getInstance("Blowfish");
// initialisation du cryptage cipher
// Passe en @param mode et clef
cipher.init(Cipher.ENCRYPT_MODE, KS);
this.mdp = new String(cipher.doFinal(password.getBytes()));
System.out.println(this.mdp);
}
catch (NoSuchAlgorithmException e) {
System.err.println(e);
}
catch (NoSuchPaddingException e) {
System.err.println(e);
}
return this.mdp;
} |
Fonction pour décrypter:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public String decrypt(String password) throws IllegalBlockSizeException, BadPaddingException, InvalidKeyException {
String key = "toto";
byte[] keydata = key.getBytes();
SecretKeySpec KS = new SecretKeySpec(keydata, "Blowfish");
try {
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, KS);
password = new String(cipher.doFinal(this.mdp.getBytes()));
System.out.println(password);
}
catch (NoSuchAlgorithmException e) {
System.err.println(e);
}
catch (NoSuchPaddingException e) {
System.err.println(e);
}
return password;
} |
Vous remarquerez que je n'ai aps mis en paramètre le string et la clef car je les ai mis en dur pour les Tests merci d'avance !!! :lol::lol::lol: