我有一個用於加密的密碼,並將其存儲到數據庫中,如下的方法:解密方法
public static string Md5Encrypted(string password)
{
byte[] pass = Encoding.UTF8.GetBytes(password);
MD5 md5 = new MD5CryptoServiceProvider();
string strPassword = Encoding.UTF8.GetString(md5.ComputeHash(pass));
return strPassword;
}
現在我想的是decrypt
,我從中數據庫獲取密碼的方法在存儲它時通過上述方法進行加密。我不知道該怎麼做。任何人都可以幫助我嗎?
你沒有用MD5加密任何東西。你正在生成一個不可逆的散列。您應該通過爲給定密碼生成散列並將其與存儲的散列進行比較來比較密碼。 – 2013-02-13 09:59:29
扭轉這種情況的唯一方法是猜測正確的密碼。這不是一個好的密碼哈希btw有兩個原因:1)沒有鹽2)MD5很快。您應該使用PBKDF2,bcrypt或scrypt。 – CodesInChaos 2013-02-13 10:01:25
@RanhiruCooray不,我沒有。當我比較新的加密密碼和舊密碼時,即已經存儲在數據庫中的加密密碼時,如果密碼匹配,則不會返回true。該?變成了一個矩形? – Dev 2013-02-13 10:06:01