我正在研究创建一个自定义成员登录系统(用于学习),我无法找出生成加密哈希的C#命令。
我需要导入某个命名空间或类似的东西吗?
答案 0 :(得分:18)
使用命名空间System.Security.Cryptography:
MD5 md5 = new MD5CryptoServiceProvider();
Byte[] originalBytes = ASCIIEncoding.Default.GetBytes(originalPassword);
Byte[] encodedBytes = md5.ComputeHash(originalBytes);
return BitConverter.ToString(encodedBytes);
或FormsAuthentication.HashPasswordForStoringInConfigFile method
答案 1 :(得分:4)
就我而言,我的目的是使用这个函数来获取gravatar图片profil:
你可以像你想要的那样使用它
public string getGravatarPicture()
{
MD5 md5 = new MD5CryptoServiceProvider();
Byte[] originalBytes = ASCIIEncoding.Default.GetBytes(email.ToLower());
Byte[] encodedBytes = md5.ComputeHash(originalBytes);
string hash = BitConverter.ToString(encodedBytes).Replace("-", "").ToLower();
return "http://www.gravatar.com/avatar/"+hash+"?d=mm";
}
答案 2 :(得分:3)
首先,加密哈希是一个矛盾。像素食牛排。您可以使用加密,也可以对它们进行哈希处理(并且应该对它们进行哈希),但哈希不是加密。
查找以Md5开头的类;)或Sha1 - 这些是哈希算法。它就在.NET(System.Security.Cryptography命名空间)中。
答案 3 :(得分:2)
我更喜欢将哈希全部放在一个连接的字符串中。我借用this来构建我的哈希:
public static string MD5Hash(string itemToHash)
{
return string.Join("", MD5.Create().ComputeHash(Encoding.ASCII.GetBytes(itemToHash)).Select(s => s.ToString("x2")));
}