6

我在 Windows 7 中启用了 FIPS 合规模式,但现在我的代码无法编译并出现以下错误:

Source file 'whatever.cs' could not be opened ('This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.')

我正在使用 SHA1(散列)和 TripleDes(加密)加密。我还尝试了 SHA512 和 AES(256 位密钥)。

我无法再构建项目,但我需要编译它以使用符合 FIPS 的算法。

4

3 回答 3

9

有一个符合 FIPS 的算法列表。更完整的列表在这里

FIPS 兼容算法:

哈希算法

HMACSHA1

MACTripleDES

SHA1CryptoServiceProvider

对称算法(加密和解密使用相同的密钥)

DESCryptoServiceProvider

TripleDESCryptoServiceProvider

非对称算法(使用公钥加密,私钥解密)

DSACryptoServiceProvider

RSACryptoServiceProvider

因此,您需要使用SHA1CryptoServiceProviderTripleDESCryptoServiceProvider符合 FIPS

于 2011-02-17T20:57:49.393 回答
8

尝试制作一个空白的 C# 应用程序并编译它,它应该由于同样的原因而失败。最终问题出在 Visual Studio,而不是您的代码。按照此处的说明将其添加到您的 IDE 的配置文件 ( Devenv.exe.config// VCSExpress.exe.config)中vbexpress.exe.config

<enforceFIPSPolicy enabled="false"/>

这并不意味着您的应用程序没有在 FIPS 兼容模式下运行,而是意味着 Visual Studio 现在不是。不合规的代码仍然可以编译,但如果它试图执行,你会收到一个System.InvalidOperationException异常。

我认为,但不确定,VS 用于在库中生成某些哈希的算法实际上并不符合 FIPS。

于 2011-02-17T21:39:19.163 回答
0

您也可以尝试关闭 IDE 中所有打开的文件,然后进行构建。最近有人在 Microsoft Connect 上写了 >issue:connect.microsoft.com/VisualStudio/feedback/details/644602/… – indiv

这也适用于 Visual Studio 2010。在我的情况下,我必须关闭所有打开的文件并重新启动 Visual Studio

于 2013-01-03T18:22:23.533 回答