本文来自:http://www.cnblogs.com/chuncn/archive/2008/02/26/1082418.html
C#的哈希
哈希算法是啥?哈希英文hash,是一种数学算法,它能把任意长度的值转换成固定长度的值,而且映射关系唯一并算法不可逆,理论上不拿到原值,是不可能得到对应的哈希值的,但是这都是历史了,中国科学院的王小云已经初步破解了基于哈希算法的MD5和SHA1算法,所以.NET库里面能够安全使用的估计只有SHA256Managed、SHA384Managed、SHA512Managed了,不过这些东西也只是基于SHA1增加复杂度而已,估计也扛不了多长时间了,我建议大家现在直接用SHA512Managed好了。
SHA512Managed生成512位哈希值,使用方法很简单:
SHA512Managed生成512位哈希值,使用方法很简单:
private string SHA512(string strPlain)
{
SHA512Managed sha512=new SHA512Managed();
string strHash=string.Empty;
byte[] btHash=sha512.ComputeHash(UnicodeEncoding.Unicode.GetBytes(strPlain));
for(int i=0;i<btHash.Length;i++)
{
strHash=strHash+Convert.ToString(btHash[i],16);
}
return strHash;
}
{
SHA512Managed sha512=new SHA512Managed();
string strHash=string.Empty;
byte[] btHash=sha512.ComputeHash(UnicodeEncoding.Unicode.GetBytes(strPlain));
for(int i=0;i<btHash.Length;i++)
{
strHash=strHash+Convert.ToString(btHash[i],16);
}
return strHash;
}