Je fais appel MessageDigest.digest()
méthode pour obtenir le hachage du mot de passe. Si le mot de passe contient un caractère norvégien, par ex. 'ø'
, cette méthode renvoie le même hachage pour différentes chaînes avec un dernier caractère différent. "Høstname1"
et "Høstname2"
ont même hachage, mais "Hostnøme1"
aura un hachage différent comme 'ø'
emplacement est différent. C'est avec l'encodage "utf-8". Pour l'encodage "iso-8859-1", je ne vois pas ce problème. Est-ce un problème connu ou ai-je oublié quelque chose ici?MessageDigest.digest() retournant même hachage pour les différentes chaînes ayant un caractère norvégien
Ceci est mon code:
import java.security.MessageDigest;
String password = "Høstname1";
String salt = "6";
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
byte[] hash = new byte[40];
messageDigest.update(salt.getBytes("utf-8"), 0, salt.length());
messageDigest.update(password.getBytes("utf-8"), 0, password.length());
hash = messageDigest.digest();
Juste une supposition, mais il pourrait avoir quelque chose à voir avec l'encodage de votre sourcefile et le codage du jeu pour le compilateur. –