操作系统更新后,软件出现各种bug~ 乍一看,md5加密算法跪了!

为啥会出现md5算法崩溃呢?

原因是操作系统开启了FIPS,而md5并不是FIPS(Federal Information Processing Standards 即(美国)联邦信息处理标准)中的一个部分,这就导致了异常的发生!

要解决这个问题,思路很简单:关闭FIPS或者本软件关闭FIPS。

所以解决方案可以有以下几种:

一、到系统的组策略安全设置中把FIPS禁用掉

  1. 按 WIN+R(或点击开始-运行),并输入gpedit.msc后确定,启动组策略编辑器。
  2. 左侧列表中找到 计算机配置 - Windows设置 - 安全设置 - 本地策略 - 安全选项,并在右侧找到“系统加密:将FIPS兼容算法用于加密、哈希和签名”,设置为禁用。

二、修改注册表

  1. 按WIN+R(或点击开始-运行),并输入 后确定,启动注册表编辑器。
  2. 浏览到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy,将Enabled的值改为0。

三、修改程序运行时配置项

  1. 如果进程所在项目,没有存在app.config文件,那么先新建app.config。
  2. runtime节点中添加<enforceFIPSPolicy enabled="false"/>配置项目。
<!--关闭FIPS配置项-->
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup> 
  <runtime>
    <enforceFIPSPolicy enabled="false" />   
  </runtime>
</configuration>

以上就是解决md5算法崩溃的方法,请笑纳!


本文会经常更新,请阅读原文: https://huchengv5.gitee.io//post/C-md5%E5%8A%A0%E5%AF%86%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名胡承(包含链接: https://huchengv5.gitee.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系