我無法弄清楚我在這裏做錯了什麼。我有以下代碼:MessageDigest SHA-512與openssl不同
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不使用機器的默認字符集?
任何幫助表示讚賞。
字符編碼不應該是''myString''的問題,因爲這是純粹的ASCII。但是你可能想檢查'myString.getBytes()'的返回值,以確保。 – 2010-06-26 18:17:55