如何在Visual Studio 2010和Windows 7中使用FIPS验证的加密算法?

ScA*_*er2 6 c# encryption fips visual-studio-2010

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

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

我正在使用SHA1(散列)和TripleDes(加密)加密.我也尝试过SHA512和AES(256位密钥).

我不能让项目继续构建,但我需要编译它以使用FIPS兼容算法.

SwD*_*n81 9

有一系列符合FIPS的算法.这里有一个更完整的清单

符合FIPS的算法:

哈希算法

HMACSHA1

MACTripleDES

SHA1CryptoServiceProvider

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

DESCryptoServiceProvider

TripleDESCryptoServiceProvider

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

DSACryptoServiceProvider

的RSACryptoServiceProvider

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


Chr*_*aas 8

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

<enforceFIPSPolicy enabled="false"/>
Run Code Online (Sandbox Code Playgroud)

这并不意味着您的应用程序未在FIPS兼容模式下运行,这意味着Visual Studio现在不是.不兼容的代码仍将编译,但如果它尝试执行,您将收到System.InvalidOperationException异常.

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

  • 您还可以尝试关闭IDE中的所有打开文件,然后构建.有人最近在Microsoft Connect上写了这个问题:https://connect.microsoft.com/VisualStudio/feedback/details/644602/c-solution-will-not-build-with-fips-compliant-security-turned-on-和一些 - 源文件 - 开在-IDE (5认同)