日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2024/9/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 博客园首页博问闪存新随笔联系订阅管理 随笔- 252 文章- 0 评论- 45 HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天在開發(fā)一個軟件時,同時在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;
??? }
但發(fā)現(xiàn)同樣一個字符串,兩種方式得出的密文是不一樣的,最后才發(fā)現(xiàn)原來是編碼方式導(dǎo)致的,ASP.NET里默認(rèn)的是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;
??? }

總結(jié)

以上是生活随笔為你收集整理的博客园首页博问闪存新随笔联系订阅管理 随笔- 252 文章- 0 评论- 45 HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。