欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-26 19:40:10
工具是使用AES-256-CBC加密算法 问题 最近有客户反映, 在使用我们工具时候,会出现“调用的目标发生了异常”错误, 接到反馈之后, 我们进行了很多测试,甚至得到客户系统信息和framework版本, 但是都没有得到复现。测试,debug,log打印各种尝试,无果。 **报错信息显示:** 原 ......

工具是使用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_machine\system\currentcontrolset\control\lsa\fipsalgorithmpolicy,将enabled的值改为0

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

 

 方法二

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

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

  

 建议

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

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