【发布时间】:2013-04-03 13:00:03
【问题描述】:
我想如果我使用默认的 MD5 函数,那将在不同的应用程序中为相同的字符串创建相同的哈希
所以我想以某种方式定义一个 pre static 值,将其提供给 MD5 函数,并使这些生成的结果使我的应用程序独一无二。
这个静态值在我的应用程序中永远不会改变,所以它总是会为我的应用程序中的相同字符串生成相同的哈希值
但是如果另一个应用程序使用默认的 MD5,他们将不会得到相同的 MD5 哈希值
如何使用 c# 5 做到这一点? asp.net
下面是我的功能
public static string ConvertStringtoMD5(string strword)
{
MD5 md5 = MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(strword);
byte[] hash = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("x2"));
}
return sb.ToString();
}
【问题讨论】:
-
我们能问一下为什么你想这样做吗?答案很可能会影响采取的最佳方法。
-
另外请注意,如果机器已配置为强制执行 FIPS,则 MD5 调用将生成异常。看看 SHA。
-
是的,我也可以使用 SHA 没关系。
-
+1 到@AlexK。提到加盐,类似的原理,但主要用于密码存储。