Нам нужна строка hash, использующая SHA-256.SHA-256 хэш возвращает разные результаты
Это код, у меня есть:
public String getSHA256HashedString(String clearString) {
String _LOC = "[SB_UtilityBean: getSHA256HashedString]";
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(clearString.getBytes());
String _encrypted = bytesToHex(md.digest());
System.out.println(_LOC + "1.0 " + " Result 1: " + _encrypted);
System.out.println(_LOC + "1.0 " + " Result 2: " + bytesToHex(md.digest()));
return _encrypted;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
private static String bytesToHex(byte[] bytes) {
String _LOC = "[SB_UtilityBean: bytesToHex]";
StringBuffer result = new StringBuffer();
for (byte byt : bytes) result.append(Integer.toString((byt & 0xff) + 0x100, 16).substring(1));
return result.toString();
}
Если bytesToHex(md.digest())
присваивается переменной _encrypted
и сделать печать линии _encrypted
, я получаю результат 1:
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
Если я делаю линию печати bytesToHex(md.digest())
, я получаю результат 2:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
@AndrewMedico я вижу. Итак, Результат 1 - правильный хешированный? – bittersour
@ bittersour Да. Второй хэш ('e3b ... 855') является суммой SHA256 пустого буфера. – duskwuff