MessageDigest SHA-512与openssl不同

Tim*_*Tim 7 java message openssl sha digest

我无法弄清楚我在这里做错了什么.我有以下代码:

byte[] digest = new byte[0];
MessageDigest md = null;
try{
    md = MessageDigest.getInstance( "SHA-512" );
}
catch( NoSuchAlgorithmException e ) {
    return digest;
}
digest = md.digest( myString.getBytes() );
Run Code Online (Sandbox Code Playgroud)

查看NetBeans调试器中摘要byte []的十六进制值,它显示的内容与输出的不同:

echo "myString" | openssl dgst -sha512
Run Code Online (Sandbox Code Playgroud)

我猜这是一个字符编码问题,但是JVM和openssl是否使用了该机器的默认字符集?

任何帮助表示赞赏.

Ste*_*ker 7

echo 最后添加换行符 -

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

试试echo -n

  • 就是这样!你是一个bash忍者!谢谢. (2认同)