系统禁用执行FIPS政策导致程序发生“调用的目标发生了异常”

摘要:
客户最近报告了在该工具中使用AES-256-CBC加密算法的问题。在使用我们的工具时,会出现“呼叫目标异常”的错误。在收到反馈后,我们进行了多次测试,甚至获得了客户的系统信息和框架版本,但它们没有被复制。测试、调试、日志打印各种尝试,但没有结果**错误消息显示:**原因错误消息:调用目标发生异常。在组策略中启用了Windows安全选项“系统加密”,这不是最初的软件包。计算机配置导致:系统的组策略安全设置使得无法使用此算法。

工具是使用AES-256-CBC加密算法

 问题

最近有客户反映, 在使用我们工具时候,会出现“调用的目标发生了异常”错误, 接到反馈之后, 我们进行了很多测试,甚至得到客户系统信息和framework版本, 但是都没有得到复现。测试,debug,log打印各种尝试,无果。

**报错信息显示:** 

导致错误信息 : 调用的目标发生了异常。
导致错误的方法 :System.RuntimeMethodHandle.InvokeMethod

在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
在 System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
在 System.Security.Cryptography.CryptoConfig.CreateFromName(String name, Object[] args)
在 System.Security.Cryptography.Rijndael.Create()
在 命名空间.类名..ctor(CryptType type, String key, String Iv)


 原因

最后在Q群里一位大哥(在此非常感谢),给了微软的相关信息链接, 在链接的解决方法处提到

使用的加密算法不符合联邦信息处理标准(FIPS)。在组策略中启用了Windows安全选项“系统加密”

  

原来不是软件的锅, 电脑配置导致:系统的组策略安全设置导致无法使用此算法。


解决办法

 方法一

按Win+R(或点击开始-运行),并输入regedit后确定,启动注册表编辑器。

浏览到计算机HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaFipsAlgorithmPolicy,将Enabled的值改为0

关闭注册表编辑器后,重新打开软件。

 方法二

在config文件中配置文件根目录下添加, 在运行时禁用执行FIPS政策

<runtime>
<enforceFIPSPolicy enabled="false"/>
</runtime>

  

 建议

由于用户的不确定性,因为你不知道用户对电脑的了解程度, 且修改注册表是件很危险的事儿, 建议使用方法二

 结尾
希望我的这篇文字能帮助遇到同样问题的你。

免责声明:文章转载自《系统禁用执行FIPS政策导致程序发生“调用的目标发生了异常”》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决了一个IDA编译代码时maven总是自动执行单元测试的问题linux 安装 es下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

HTML页面如何判断是手机访问还是电脑访问

可以通过js来判断访问设备,代码如下: 1 <script type="text/javascript"> 2 var system ={}; 3 var p = navigator.platform; 4 system.win = p.indexOf("Win") == 0;...

ASP.NET WebApi总结之自定义权限验证

在.NET中有两个AuthorizeAttribute类, 一个定义在System.Web.Http命名空间下 #region 程序集 System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // E:srcpackagesMicrosoft.A...

C#数组段ArraySegment&amp;lt;T&amp;gt;的使用

//数组段ArraySegment<T>的使用 using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; namespace ss { class Program...

C# WinForm下DataGridView绘制背景图

昨天一个朋友突然问我如何在C#下给DataGridView绘制背景图,以前使用一些第三方控件时,看见它们有这个功能,只是我还没有过这种需求,于是便动手试了下。 最先想到的是BackgroundImage,这两天正在做B/S的界面,还觉得要说做界面方便,还得说CSS,从这点上来说,WPF或者Silverlight还真不赖,只可惜的是现在C/S的用武之地越来越...

Unity3D:粒子系统Particle System

1. GameObject → Create Other  →  Particle System。 2. 选中 Particle System,可看到下列屬性:                           3.Particle System:                           Duration: 粒子发射时间(设定为5秒。每...

c# WinForm调用控制台

由于Windows控制台程序是封装在kernel32.dll,所以有必要讲述一下WinForm如何调用动态链接库的步骤。 1.首先需要在调用窗体中申明using System.Runtime.InteropServices; 2.其次需要在C#语言源程序中声明外部方法,格式如下: [DLLImport(“DLL文件”)] 修饰符 extern 返回变量类型...