通过MD5加密以后,是不可能进行解密的,因为MD5是不可逆的。
既然无法解密,那么,如何才能破解MD5的密文呢?那就只有暴力破解了。
暴力破解其实相当于穷举法。穷举法(Exhaustive Attack method),又称为强力法,(Brute-force method)。完全试凑法(complete trial-and –error method)
对所有可能的明文加密直到与截获的密文一致为止。
穷举法用时间上的牺牲换来了解的全面性保证,尤其是随着计算机运算速度的飞速发展,穷举法的形象已经不再是最低等和原始的无奈之举,比如经常有黑客在几乎没有任何已知信息的情况下利用穷举法来破译密码,足见这种方法还是有其适用的领域的。
在ASP.NET中,你不妨试试如下的代码对MD5的破解。
public static string Hash(string toHash)
{
MD5CryptoServiceProvider crypto = new MD5CryptoServiceProvider();
byte[] bytes = Encoding.UTF7.GetBytes(toHash);
bytes = crypto.ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
foreach (byte num in bytes)
{
sb.AppendFormat("{0:x2}", num);
}
return sb.ToString();
}
userPass = PageValidate.GetSafeStr(this.txtUserPass.Text.Trim());
userPassmd5 = MD5.Hash(userPass);