一. 发生问题

临近下班时间的下午,领导一句话:项目先上到测试服吧,我明早来看看。

我想项目还没做完,先上到测试服务器,简单看下应该是没什么问题,部署也只是一会儿的事嘛,随后把手头的项目编译,发布,拷到远程服务器上,IIS配置一下,各类服务装一下,在浏览器中输入地址,成功进入登录界面,输入正确的帐号密码,却发现登录不了,what,什么鬼?

二. 查找原因

因为项目在本地是正常的,于是找到日志,发现了问题所在

原因是用户的登录密码加密方式用的是md5,而md5并不是FIPS(Federal Information Processing Standards 即(美国)联邦信息处理标准)中的一个部分  

三. 尝试解决问题

于是打开某度,输入上面的错误,满屏的全匹配红色关键字扑面而来,看来有这问题的人还真多,瞬间觉得有救了

主要原因就是系统的组策略安全设置开启了FIPS导致无法使用MD5算法,秉着志在必得的心情,按照网友们的解决办法去弄了一遍,不外乎就两种方式:

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

步骤:

1.按 WIN+R(或点击开始-运行),并输入gpedit.msc后确定,启动组策略编辑器。

                   2.左侧列表中找到 计算机配置 - Windows设置 - 安全设置 - 本地策略 - 安全选项,并在右侧找到“系统加密:将FIPS兼容算法用于加密、哈希和签名”,设置为禁用

第二种:修改注册表

步骤:

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

2.浏览到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy,将Enabled的值改为0

经过上面两种方法尝试后发现居然还是不行!!!,众多教程几乎全都是这两种解决办法,为什么我不行!!

思考片刻,我想国内找不到,国外总有吧,这时候打开了某歌,输入错误信息。。。等等,外国人是用英文的,于是先去找到了错误信息对应的英文翻译,搜索,又是一片,呵呵

在浏览多个页面的过程中,不经意间就进到巨硬msdn的一个页面,终于又发现了两个解决方法:

1. 升级系统补丁,或者找到一个名叫KB935434的补丁(这个补丁根本已经找不到了好么)

2. 在webconfig加入一段配置,可以绕过FIPS的验证  (一点用没有。。。)

参考页面:https://blogs.msdn.microsoft.com/dataaccesstechnologies/2015/07/16/report-manager-system-invalidoperationexception-this-implementation-is-not-part-of-the-windows-platform-fips-validated-cryptographic-algorithms/

四. 解决问题

经过上面所有的尝试,包括重启,反复尝试,寻找方案,各种技术群询问,已经过去了3个多小时,我已经有点崩溃

突然想到上面说的系统补丁,我想会不会是系统的原因,服务器的系统是win server 2008 r2 sp1 ,我去翻看了我本机电脑的注册表,发现是有不同的,我甚至还把本机注册表里有的项,而服务器里没有的,全给它建上去了,还是不行! 

会不会是系统不同,读取的目录是不同的,或者说这个FIPS开关是会有多个的??

于是我尝试着在注册表里全局搜索FipsAlgorithmPolicy这个关键字,一项一项的查找,最后定位到了一个仅有一层父级目录不同,但是其他目录结构,名字一模一样的项

把里面的项改成0,马上去登录帐号,通过了!!!

果然系统不同,读取的注册表目录是会有差别的。。。

五. 总结

有时候项目在本机是没问题的,但是发布到服务器上后总会出现一些奇怪的问题,这是经常发生的事情,大家都懂的。但是发生了问题,肯定是需要去解决的,首先,代码里做好基本的错误日志记录肯定是需要的,再找到解决方案,发现不可用之后,需要冷静下来,思考为什么会发生这样的问题,然后可以根据现有的解决办法延伸出去,多方位去判断原因,并尝试去动手,花时间不重要,重要的是累积经验,以后就可以少踩一些坑了。

解决md5不是windows平台FIPS验证的加密算法的一部分的怪异问题的更多相关文章

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

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

  2. 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 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

    出现问题: 出现这个问题的原因是订票助手.NET使用了MD5算法,而系统的组策略安全设置导致无法使用此算法.要修正此问题,请按照如下操作(两种方法任选其一). 注:(来源于  http://ask.f ...

随机推荐

  1. 实现自动构建编译javaweb项目并发布到N台服务器

    前言 当你使用nginx实现了负载均衡,当你有了超过3台以上的应用服务器时,一个特别头疼的问题就来了,发布项目好麻烦. 你每次都要在本地编译打包一遍,然后手动复制到每一台服务器上面去,如果只有一两台服 ...

  2. sql 删除重复数据,保留重复数据第一条

      SELECT row=ROW_NUMBER() OVER(PARTITION BY 重复字段一,重复字段二 ORDER BY GETDATE()) ,* FROM 筛选重复表名     具体实现如 ...

  3. TuSDK 简易使用方法 持有图片对象方式

    TuSDK 为涂图照相应用的SDK,打包后文件大小约为5M,缺点为包比较大,且图片清晰度较差一些,优点为直接可以引用滤镜贴纸,方便易用.   使用方法如下:    1.AppDelegate.m 中加 ...

  4. 字符编码的种类:ASCII、GB2312、GBK、GB18030、Unicode、UTF-8、UTF-16、Base64

    ASCII码ASCII:https://zh.wikipedia.org/wiki/ASCIIASCII(American Standard Code for Information Intercha ...

  5. linux 私房菜 CH7 Linux 档案与目录管理

    路径 ``` . 此层目录 .. 上一级目录 前一个工作目录 ~ 当前用户的家的目录 ``` 变换目录 cd 显示目录 pwd [-P] -P 显示出确实的路径,而非使用链接 (link) 路径. 创 ...

  6. Java中的枚举的治理

    版权声明:本文为博主原创文章,转载请注明出处,欢迎使劲喷 一.为啥用枚举&为啥要对枚举进行治理 1.先来说说为啥用枚举 表中某个字段标识了这条记录的状态,我们往往使用一些code值来标识,例如 ...

  7. JsonCpp(C++程序使用)

    C++ json解析库 github C++: Makefile目录cmd:make 得到build 得到.a静态库 Eclipse引入头文件  (include目录) 引入.a静态库 编译设置: O ...

  8. 性能测试平台效率优化的一次经验(python版)

    在做性能测试平台的优化过程中,由于启动任务相对其他测试任务比较频繁,而目前30次两个包的交叉对比(30次)测试需要耗时30分钟整,因此打算优先对测试流程做一次优化,将测试时间消耗降低到20分钟. 由于 ...

  9. c#关于时间TimeHelper类的总结

    using System; namespace DotNet.Utilities{    /// <summary>    /// 时间类    /// 1.SecondToMinute( ...

  10. oracle学习 笔记(2)

    题记:在使用Oracle数据库的时候,发现Oracle是没有自动增长列来实现主键的,所以在此记录学习.(PS:如果哪里有错误或者不足的地方还请大家帮忙指出来) 二.序列(自动增长列) 为此问题博主也是 ...