Я использую следующий код для хэширования входящей строки, ожидая, что то же самое, что применяется к методу несколько раз, всегда будет иметь одинаковые результаты. Сценарий будет состоять из хэширования паролей и последующей проверки. Но, похоже, это не сработало - у меня есть две разные капли для одной входной строки. Есть что-то неправильно или отсутствует в моем коде?SHA хэширует одну и ту же строку в разных блоках
public synchronized String encrypt(String token) {
try {
MessageDigest sha = MessageDigest.getInstance("SHA");
sha.reset();
sha.update(token.getBytes("UTF-8"));
byte[] raw = sha.digest();
System.out.println("raw = " + raw.toString());
String hash = Base64.encodeBase64(raw).toString();
return hash;
} catch (Exception e) {
}
return token;
}
Добавить тег соответствующих языков. Я считаю, что вы забыли добавить 'Java'. –
Спасибо, добавлено. – tom
SHA - ** NOT ** шифрование. – Dan