我无法弄清楚我在这里做错了什么。我有以下代码:
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 []的十六进制值,它显示的内容与输出不同:
echo "myString" | openssl dgst -sha512
我猜这是一个字符编码问题,但JVM和openssl是否使用了该机器的默认字符集?
感谢任何帮助。
答案 0 :(得分:7)
echo
在最后添加换行符 -
[steven@emu:~]% echo "myString" | hexdump -C
00000000 6d 79 53 74 72 69 6e 67 0a |myString.|
试试echo -n
?