Java MessageDigest SHA-512与openssl不同
我搞不清楚我做错了什么。我有以下代码:Java MessageDigest SHA-512与openssl不同,java,openssl,message,digest,sha,Java,Openssl,Message,Digest,Sha,我搞不清楚我做错了什么。我有以下代码: 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调试器中dig
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调试器中digest byte[]的十六进制值,它显示了与以下内容不同的输出:
echo "myString" | openssl dgst -sha512
我猜这是一个字符编码问题,但是JVM和openssl不使用机器的默认字符集吗
非常感谢您的帮助。
echo
在末尾添加一个换行符-
[steven@emu:~]% echo "myString" | hexdump -C
00000000 6d 79 53 74 72 69 6e 67 0a |myString.|
试试
echo-n
?字符编码对于“myString”
来说不应该是个问题,因为这是纯ASCII码。但是您可能需要检查myString.getBytes()的返回值以确保正确。就是这样!你是一个猛击忍者!谢谢你。那以前也让我绊倒了!