解决方案:System.InvalidOperationException: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。

System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.

引发该问题的原因是系统启动了FIPS,导致.NET Framework平台中的MD5加密及其他一些加密方法需要调用FIPS验证,但FIPS又不支持这些方法,故引发如上异常。

解决方法:

注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy项目中,将Enabled值设置为0即可

也可以在程序启动时加入检查和修复的代码,如下

        /// <summary>
        /// 测试MD5加密可用性
        /// </summary>
        public static void GeneratingMD5Test()
        {
            try
            {
                MD5CryptoServiceProvider get_md5 = new MD5CryptoServiceProvider();
            }
            catch (InvalidOperationException)
            {
                CloseFIPS();
            }
            catch (Exception) { }
        }

        /// <summary>
        /// 关闭操作系统FIPS功能(该功能开启会导致.NET Framework中的MD5加密功能出现错误)
        /// </summary>
        /// <returns></returns>
        private static bool CloseFIPS()
        {
            bool res = false;
            try
            {
                RegistryKey localMachine = Registry.LocalMachine;
                RegistryKey FipsAlgorithmPolicy = localMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy");
                string[] vks = FipsAlgorithmPolicy.GetValueNames();
                foreach (string k in vks)
                {
                    if (k.ToUpper() == "ENABLED")
                    {
                        if (FipsAlgorithmPolicy.GetValue(k).ToString() != "0")
                        {
                            MessageBoxButtons mbs = MessageBoxButtons.OKCancel;
                            DialogResult dre = MessageBox.Show("报名系统运行时发生错误,是否尝试修复(会更改注册表项目)?", "提示", mbs);
                            if (dre == DialogResult.OK)
                            {
                                FipsAlgorithmPolicy.SetValue(k, 0);
                            }
                            break;
                        }
                    }
                }
                FipsAlgorithmPolicy.Close();
                localMachine.Close();
                res = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(String.Format("修复失败,发生错误:{0}{1}{0}详细情况请查看日志文件",Environment.NewLine,ex.Message), "错误");
                LogException(ex);
            }
            return res;
        }
时间: 2024-11-08 23:57:06

解决方案:System.InvalidOperationException: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。的相关文章

C#无法生成解决方案,System.InvalidOperationException: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。

今天来了之后,突然项目无法运行了,报了一大堆错误,我贴图出来给大家看看 我在网上翻了一大堆,最后还是我的老师给我说的,注册表有问题.问题在于倒数第二个异常问题,解决这个就行了. win+R,输入“regedit”,回车打开注册器,然后进入如下路径中: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy 双击右边Enabled,将他设置为0即可.记得要重启项目哦!

关于错误提示:此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决方案

vs上的一个项目,弄了一个aes加密算法.提示说:调用的目标异常.此实现不是 Windows 平台 FIPS 验证的加密算法的一部分.弄了好久一直不行.解决不了.最后找了半天资料终于解决了.估计下来.方便日后查看.积累经验. 解决方案如下:在window中打开功能里输入regedit,回车打开注册器.然后进入如下路径中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy 将    enable设置

此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决办法方案

windoows客户端程序在中文win7操作系统上安装正常,在一台英文win7操作系统上安装后,登录的时候提示下面的错误: System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. at 翻译成中文,大概是下面的意思: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分 网上查到

实例化MD5CryptoServiceProvider报错:此实现不是 Windows 平台 FIPS 验证的加密算法的一部分

捕捉到 System.InvalidOperationException IsTransient=false Message=此实现不是 Windows 平台 FIPS 验证的加密算法的一部分. Source=mscorlib StackTrace: 在 System.Security.Cryptography.MD5CryptoServiceProvider..ctor() 虽然不明白原因,解决办法是:修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl

此实现不是 Windows 平台 FIPS 验证的加密算法的一部分

今天有同事报软件出错日志记录: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分. mscorlib, 在 System.Security.Cryptography.MD5CryptoServiceProvider..ctor() 一阵狂搜在百度贴吧中找到一个解决方法,经验证果然可以解决该问题,记录一下  贴吧地址:http://tieba.baidu.com/p/4056696175 win+r,输入regedit,在这个目录下HKEY_LOCAL_MACHINE\SYSTE

关于此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。(错误摘要)

该错误是由于开启了FIPS验证策略导致部分算法不能通过验证,后来我查了下所谓的FIPS就是 Federal Information Processing Standard,中文名叫联邦信息处理标准,FIPS 是由两个政府主体开发的标准.一个是美国国家标准和在美国境内的技术.另一种是通信安全机构,在加拿大.FIPS 是建议或要求使用 (美国或加拿大) 的联邦政府操作 IT 系统中的标准. 解决方法如下: 1.本地策略→安全选项→找到"系统加密:将FIPS算法用于加密 .哈希和签名"点击右

MD5加密出现 无法启动:此实现不是Windows平台FIPS验证的加密算法的一部分

出现问题: 出现这个问题的原因是订票助手.NET使用了MD5算法,而系统的组策略安全设置导致无法使用此算法.要修正此问题,请按照如下操作(两种方法任选其一). 注:(来源于  http://ask.fishlee.net/article/3) 方法一: 1.按WIN+R(或点击开始-运行),并输入gpedit.msc后确定,启动组策略编辑器. 2.左侧列表中找到 计算机配置 - Windows设置 - 安全设置 - 本地策略 - 安全选项,并在右侧找到"系统加密:将FIPS兼容算法用于加密.哈希

无法启动:此实现不是Windows平台FIPS验证的加密算法的一部分

个别同学可能会在启动订票助手.NET的时候发现这个提示: 出现这个问题的原因是订票助手.NET使用了MD5算法,而系统的组策略安全设置导致无法使用此算法.要修正此问题,请按照如下操作(两种方法任选其一).   方法一. 1.按WIN+R(或点击开始-运行),并输入gpedit.msc后确定,启动组策略编辑器. 2.左侧列表中找到 计算机配置 - Windows设置 - 安全设置 - 本地策略 - 安全选项,并在右侧找到“系统加密:将FIPS兼容算法用于加密.哈希和签名” 3.双击上述策略,在弹出

VS2015编译错误:调用的目标发生了异常---&gt;此实现不是Windows平台FLPS验证的加密算法的一部分。

在Win10下安装好几次VS2015(企业版)了,这次发生了一个奇怪的问题,错误截图如下: 控制台.WPF等项目均有此错误!但是ASP.NET项目却可以编译运行!一开始还以为VS2015安装错误,修复安装VS重启系统后还是不行. 然后尝试百度,结果解决方案清一色的是打开注册表:计算机\HEKY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy,编辑Enable的值为0. 确定后关闭注册表,重启VS2015