我有一个用于加密的密码,并将其存储到数据库中,如下的方法:解密方法
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