[md5] Différence Java - MySQL
Bonjour
Je veux pouvoir comparer 2 chaines de caractères qui sont des strings encryptées md5.
Une de ces chaînes est stockée sous MySQL, l'autre est générée via Java. Je veux donc comparer sous JUnit qu'elles sont égales.
Voici mon code Java:
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 30
|
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Encryption {
public String md5;
private MessageDigest md;
public Encryption() throws NoSuchAlgorithmException {
md = MessageDigest.getInstance("MD5");
}
private String convert(byte[]b){
StringBuffer sb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
int value = b[i] & 0xFF;
sb.append(Integer.toHexString(value));
}
return sb.toString();
}
public String encrypt(String s){
byte[]input = s.getBytes();
md.update(input);
byte[]output = md.digest();
return convert(output);
}
} |
Et la fonction JUnit:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public static void testEncrypt() {
com.bioxpr.beans.Encryption encryption = null;
try{
encryption = new com.bioxpr.beans.Encryption();
}
catch(java.security.NoSuchAlgorithmException nsae){
nsae.printStackTrace();
}
assertEquals("0d045ecfb7e80db47628f3269b2a9681", encryption.encrypt("GLDavid"));
} |
Au final, ma chaîne sous Java est "d45ecfb7e8db47628f3269b2a9681". Ce qui est différent de ce que j'attend.
Ainsi, je me demande si cette différence est dûe à mon code Java ou aux implémentations d'algos entre Java et MySQL.
Merci d'avance.
@++