7

ここで何が間違っているのか理解できません。私は次のコードを持っています:

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デバッガでダイジェストbyte[]の16進値を見ると、次の出力とは異なるものが示されています。

echo "myString" | openssl dgst -sha512

これは文字エンコードの問題だと思いますが、JVMとopensslはマシンのデフォルトの文字セットを使用していませんか?

どんな助けでも大歓迎です。

4

1 に答える 1

7

echo最後に改行を追加します-

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

やってみecho -nますか?

于 2010-06-26T18:25:21.280 に答える