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() != "")
{
MessageBoxButtons mbs = MessageBoxButtons.OKCancel;
DialogResult dre = MessageBox.Show("报名系统运行时发生错误,是否尝试修复(会更改注册表项目)?", "提示", mbs);
if (dre == DialogResult.OK)
{
FipsAlgorithmPolicy.SetValue(k, );
}
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;
}

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

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

    x 昨天还好好地,然后清理一下电脑垃圾,就突然报这个错误了; 网上搜索了一下:找到解决方案了,但是由于底层知识的功力不够,至今未知具体怎么导致的... 解决方案↓ 进注册表 按Win+R运行reged ...

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

    vs上的一个项目,弄了一个aes加密算法.提示说:调用的目标异常.此实现不是 Windows 平台 FIPS 验证的加密算法的一部分.弄了好久一直不行.解决不了.最后找了半天资料终于解决了.估计下来. ...

  3. This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分 解决方案

    但web启用了md5加密后 有可能出现这样的错误 This implementation is not part of the Windows Platform FIPS validated cryp ...

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

    最近操作系统不断地报异常或错误,可能是用得太久了,而刚好工作比较多又不想重新安装系统,但用一段时间后(一天大概有两次)系统就出现各种问题导致无法继续使用真是痛苦万分啊,今天又来了这样的错误: 此实现不 ...

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

    System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS valid ...

  6. 分析器错误消息: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分

    关于错误提示:此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决方案 不知怎么的,每次Win10升级后相应的注册器都恢复默认了,当我运行08版的asp项目时会报这个错. vs上的 ...

  7. .NET编译项目时出现《此实现不是 Windows 平台 FIPS 验证的加密算法的一部分》处理方法

    有用户提出在编译代码时出现源文件“D:\.......ervice.cs”未能打开(“此实现不是 Windows 平台 FIPS 验证的加密算法的一部分.”)的问题,如下图所示: 对于上面的问题,只需 ...

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

    运行wpf程序,出现错误“此实现不是Windows平台FIPS验证的加密算法的一部分”. 解决方法: 1.在window中打开功能里输入regedit,回车打开注册器: 2.进入如下路径中 HKEY_ ...

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

    在实用VS编程的时候大家经常会遇到一个问题: 下面小编来为大家提供一个简单的解决方案: 1.在Windows中打开功能里输入regedit,回车打开注册表编辑器: 2.转到路径HKEY_LOCAL_M ...

随机推荐

  1. java并发再次积累

    监视器与锁之间的关系: 1.object monitor 是任何一个对象都有的内置的数据结构,它是用来协调使用当前对象的多个线程之间的执行顺序的(wait/notify),线程会block或者wait ...

  2. Python学习笔记之Python的多重继承和MixIn

    多重继承 继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能. 回忆一下Animal类层次的设计,假设我们要实现以下4种动物: Dog - 狗狗: Bat - 蝙蝠: Parr ...

  3. CSS3 Gradients(渐变)

    CSS3 Gradients(渐变) 一.简介 CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡. 以前,你必须使用图像来实现这些效果.但是,通过使用 CSS3 渐 ...

  4. CSS Pseudo-classes(伪类)

    CSS Pseudo-classes(伪类) CSS伪类是用来添加一些选择器的特殊效果. 一.语法 伪类的语法: selector:pseudo-class {property:value;} CSS ...

  5. cordova linux 安装并编出第一个demo-android

    cordova可以做到一次编写到处运行各个平台(android.ios.wp.bb.firefoxos.web等几乎所有平台) 手上只有一个android手机 ,安装的时候没有那么顺利,第一大问题就是 ...

  6. spring boot加mybatis使用Map返回时,当值为空时属性也会没有(转)

    使用spring boot加mybatis时,设置Map返回,当值为空时属性也会没有,就会报错 在application.properties中加入下面配置,将会解决这个问题.   #当查询数据为空时 ...

  7. 【前端】display: box布局教程 [转]

    css display:box 新属性   一.display:box; 在元素上设置该属性,可使其子代排列在同一水平上,类似display:inline-block;. 二.可在其子代设置如下属性 ...

  8. 在vim中的复制,剪切,粘贴

    1. 剪切和粘贴 定位鼠标到剪切的开始位置 输入v键开始选择剪切的字符,或者V键是为了选择 整行 移动方向键到结束的地方 d键是剪切,y键是复制 移动鼠标到粘贴的位置 输入P是在鼠标位置前粘贴,输入p ...

  9. valid 校验方式

    校验参数方法:1.最简单的方式是,使用Java bean注解校验(如 @NotEmpty...)2.适合复杂点的自定义校验(推荐) 2.1 先定义一个校验接口: public interface Va ...

  10. elasticsearch系列(七)java定义score

    概述 ES支持groovy 和 java两种语言自定义score的计算方法,groovy甚至可以嵌套在请求的参数中,有点厉害,不过不在本篇讨论范围. 如何用自定义的java代码来定义score如何产生 ...