Я не могу понять, что я делаю неправильно здесь. У меня есть следующий код:MessageDigest SHA-512 отличается от openssl
byte[] digest = new byte[0];
MessageDigest md = null;
try{
md = MessageDigest.getInstance("SHA-512");
}
catch(NoSuchAlgorithmException e) {
return digest;
}
digest = md.digest(myString.getBytes());
Глядя на шестигранных значений дайджеста байт [] в отладчике NetBeans, он показывает что-то другое, чем на выходе:
echo "myString" | openssl dgst -sha512
Я предполагаю, что это проблема кодирования символов, но не поддерживает ли JVM и openssl набор символов по умолчанию для машины?
Любая помощь приветствуется.
Кодировка символов не должна быть проблемой для '' myString'', поскольку это чистый ASCII. Но вы можете проверить возвращаемое значение 'myString.getBytes()', чтобы убедиться. –