【发布时间】:2011-09-21 19:08:21
【问题描述】:
我正在寻找一种经过 FIPS 验证的哈希算法来将密码存储在数据库中。 我确实使用了以下代码,但仍然收到错误
此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。
SHA1CryptoServiceProvider Testsha1 = new SHA1CryptoServiceProvider();
byte[] hashedBytes;
UTF8Encoding encoder = new UTF8Encoding();
hashed = Testsha1.ComputeHash(encoder.GetBytes(strPassword));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashed.Length; i++)
{
sbuilder.Append(hashed[i].ToString("x2"));
}
string Password = sb.ToString();
【问题讨论】:
-
您在哪里看到该错误消息?
-
@n8wrl 在执行 EnableFIPS 安全策略时,某些安全类(如 SHA1Managed)会引发异常。
-
我在尝试运行我的 Web 应用程序时确实看到了错误。
-
@Macnique - 发布的代码不应导致该异常 -
SHA1CryptoServiceProvider将使用 Window 的 CSP。请在堆栈跟踪中验证这一点,并将其发布到您的问题中。 -
@vcsjones 我正在使用 SHA1,因为我读到它符合 FIPS。它与 IIS 有关系吗?