我正在使用以下代碼來散列傳入的字符串,期望多次應用於該方法的相同的東西總是會得到相同的結果。該場景將用於密碼散列和稍後驗證。但它似乎並不奏效 - 我爲同一個輸入字符串得到了兩個不同的blob。我的代碼有什麼不對嗎?SHA將相同的字符串散列到不同的塊中
public synchronized String encrypt(String token) {
try {
MessageDigest sha = MessageDigest.getInstance("SHA");
sha.reset();
sha.update(token.getBytes("UTF-8"));
byte[] raw = sha.digest();
System.out.println("raw = " + raw.toString());
String hash = Base64.encodeBase64(raw).toString();
return hash;
} catch (Exception e) {
}
return token;
}
添加相關語言的標籤。我相信你忘了添加'Java'。 – 2012-01-04 18:01:55
謝謝,補充一下。 – tom 2012-01-04 18:03:14
SHA是** NOT **加密。 – Dan 2012-01-04 18:04:28