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 调试器中摘要字节 [] 的十六进制值,它显示的内容与以下输出不同:

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 回答