我目前正在編碼密碼。我必須解碼密碼。這是要編碼的代碼。我正在嘗試獲取原始密碼進行比較。我研究了MessageDigest,它說這是一種單向方法。不知道如何獲得原始信息。我們有一個解碼方法,但它不給我原來的密碼 - Base64.decode。如何解碼MessageDigest,Base64
public static synchronized String getMD5_Base64(String input) {
if (!isInited) {
isInited = true;
try {
digest = MessageDigest.getInstance("MD5");
} catch (Exception ex) {
}
}
if (digest == null)
return input;
// now everything is ok, go ahead
try {
digest.update(input.getBytes("UTF-8"));
} catch (java.io.UnsupportedEncodingException ex) {
}
byte[] rawData = digest.digest();
byte[] encoded = Base64.encode(rawData);
String retValue = new String(encoded);
return retValue;
}
}
嗨Jherico。 問題是我想比較當前密碼中以前的密碼沒有4個連續的字符,所以試圖讓MD5 Base64的模式出現不正確。所以我試圖回到原始密碼進行比較。 – Perry 2010-08-13 18:07:26
我想知道如果我應該只解碼以前的密碼,用新密碼創建MD5,只是比較MD5的創建?只是不確定我該怎麼做。 :) – Perry 2010-08-13 18:14:27
它不可能。密碼散列的要點是每個輸出位都可能受到每個輸入位的影響。沒有辦法與您所擁有的數據進行比較。 – Jherico 2010-08-13 23:43:56