今天在开发一个软件时,同时在B/S版和C/S版中都要用到MD5加密,在
ASP.NET中使用的是

/** <summary>
    /// 取得MD5加密串
    /// </summary>
    /// <param name="input">源明文字符串</param>
    /// <returns>密文字符串</returns>
    public static string GetMD5Hash(string input)
    ...{
        return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strOriginal, "MD5");
    }
的加密方式;
而在WinForm中用的是

/** <summary>
    /// 取得MD5加密串
    /// </summary>
    /// <param name="input">源明文字符串</param>
    /// <returns>密文字符串</returns>
    public static string GetMD5Hash(string input)
    ...{
        System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
        byte[] bs = System.Text.Encoding.Default.GetBytes(input);
        bs = md5.ComputeHash(bs);
        System.Text.StringBuilder s = new System.Text.StringBuilder();
        foreach (byte b in bs)
        ...{
            s.Append(b.ToString("x2").ToUpper());
        }
        string password = s.ToString();
        return password;
    }
但发现同样一个字符串,两种方式得出的密文是不一样的,最后才发现原来是编码方式导致的,ASP.NET里默认的是UTF-8编码,把WinForm程序里的System.Text.Encoding.Default.GetBytes(input);替换成System.Text.Encoding.UTF8.GetBytes(input);即可
最终正确版:

/** <summary>
    /// 取得MD5加密串
    /// </summary>
    /// <param name="input">源明文字符串</param>
    /// <returns>密文字符串</returns>
    public static string GetMD5Hash(string input)
    ...{
        System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
        byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);
        bs = md5.ComputeHash(bs);
        System.Text.StringBuilder s = new System.Text.StringBuilder();
        foreach (byte b in bs)
        ...{
            s.Append(b.ToString("x2").ToUpper());
        }
        string password = s.ToString();
        return password;
    }

博客园首页博问闪存新随笔联系订阅管理 随笔- 252 文章- 0 评论- 45 HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法...相关推荐

  1. [原创].图解一招搞定UCWEB@Nokia S60v5无法在博客园手机版发闪存的问题

    注:本文仅作用于博客园手机版,请其他网站不要转载,谢谢合作. 症状 自从换了Nokia五版的手机,就没有在博客园手机版成功发过闪存及博文.每当我登录博客园手机版,我点击闪一下,杯具就出现了,不停地提示 ...

  2. Python爬虫入门教程:博客园首页推荐博客排行的秘密

    1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首 ...

  3. python教程是用什么博客写的-Python爬虫入门教程:博客园首页推荐博客排行的秘密...

    1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首 ...

  4. 推荐一部python教程_Python爬虫入门教程:博客园首页推荐博客排行的秘密

    1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首 ...

  5. (转)利用快速开发框架,快速搭建微信浏览博客园首页文章

    原文地址:http://www.cnblogs.com/inday/p/weixin-publicf-platform-cnblogs.html 这几天接连发布了<快速开发微信公众平台框架--- ...

  6. 热烈欢呼:cnblogs.com博客园首页通过W3C验证

    今天上来博客园首页,html validator显示"0错误/0警告",通过了W3C语法验证. 不敢相信,用http://validator.w3.org又测了一下,是真的-- 太 ...

  7. .NET Core 实现定时抓取博客园首页文章信息并发送到邮箱

    前言 大家好,我是晓晨.许久没有更新博客了,今天给大家带来一篇干货型文章,一个每隔5分钟抓取博客园首页文章信息并在第二天的上午9点发送到你的邮箱的小工具.比如我在2018年2月14日,9点来到公司我就 ...

  8. preg使用。还是一样,只是个人记录,不放博客园首页

    管理员要是看到该文章放到博客园首页了,还请麻烦给移除. 因为这只是个人的笔记,没有细入去研究 1 <?php 2 header("content-Type:text/html; cha ...

  9. 【Python3 爬虫】13_爬取博客园首页所有文章

    首先,我们确定博客园首页地址为:https://www.cnblogs.com/ 我们打开可以看到有各种各样的文章在首页,如下图: 我们以上图标记的文章为例子吧!打开网页源码,搜索Docker,搜索结 ...

最新文章

  1. SAP QM 如何在SAP系统里审批挂在Quality Notification里的document?
  2. JavaWeb:MVC设计模式
  3. 通过python基于netconf协议获取网络中网元的配置数据,助力企业网络控制自动化轻松实现!
  4. 如何打造一个让粉丝一见就能收钱的朋友圈
  5. 折纸机器人的步骤图解_简单折纸:折叠小吉普车(步骤图解)
  6. 解决U盘写保护,成功擦除
  7. mysql通过视图插入数据_数据库视图 sql
  8. linux~tar压缩文件夹到指定文件夹 --- 相对路径
  9. 回溯法求解图着色问题
  10. 行存储(Row-Based)和列存储(Column-Based)
  11. 共筑未来 | 思腾合力加入光合组织,完成国产信创兼容适配
  12. scratch四级考纲
  13. 怎样在服务器上设置无线上网,设置无线路由器步骤 电信无线路由器的设置方法...
  14. 华为m2青春版android7,时尚新体验:华为M2青春版
  15. 微信小程序picker组件 - 省市二级联动
  16. 钢铁行业关键业务系统介绍
  17. Apifox 生成接口文档 教程与操作步骤
  18. linux 怎么查看usb设备端口号,嵌入式Linux USB设备检测端口和地址
  19. 【机器学习】预测偏差与其原因
  20. lazada发货_lazada的物流发货方式详解!

热门文章

  1. QT的QDesignerWidgetBoxInterface类的使用
  2. QT的QAssociativeIterable类的使用
  3. C语言三种常见排序算法
  4. php 判断接受邮件地址,PHP:电子邮件验证并接受来自特定域的电子邮件地址
  5. Pandas及简单学习
  6. 计算机核心配件是什么,计算机的核心是什么
  7. amd为什么还用针脚_为什么intel处理器不用针脚,AMD还一直使用针脚呢?
  8. python3源代码_Python3源代码编译安装
  9. matlab 不同长度的向量放入一个矩阵,Matlab:将不同长度的行叠加到矩阵上
  10. 目标检测方法系列——R-CNN, SPP, Fast R-CNN, Faster R-CNN, YOLO, SSD