MessageDigest SHA-512 отличается от openssl - PullRequest
7 голосов
/ 26 июня 2010

Я не могу понять, что я делаю здесь неправильно. У меня есть следующий код:

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 не используют набор символов по умолчанию для машины?

Любая помощь приветствуется.

1 Ответ

7 голосов
/ 26 июня 2010

echo добавляет символ новой строки в конце -

[steven@emu:~]% echo "myString" | hexdump -C
00000000  6d 79 53 74 72 69 6e 67  0a                       |myString.|

Попробуйте echo -n?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...