专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

HashPasswordForStoringInConfigFile已过时

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:18:31       共计:3623 浏览



在.net 4.5版本下,使用System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile进行MD5加密时,会出现已过时


 


我们可以用下面的方法替代之:


/// <summary>

/// 32位MD5加密

/// </summary>

/// <param name="input"></param>

/// <returns></returns>

private static string Md5Hash(string input)

{

MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();

byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));

StringBuilder sBuilder = new StringBuilder();

for (int i = 0; i < data.Length; i++)

{

    sBuilder.Append(data[i].ToString("x2"));

}

return sBuilder.ToString();

}


~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.


int str = 0xa;

WriteLine(str.ToString());//自动转换为十进制 :10

WriteLine(str.ToString("x"));//输出十六进制: a

WriteLine(str.ToString("x2"));//输出十六进制: 0a

2.


      /// <summary>

       /// 将byte型转换为字符串

       /// </summary>

       /// <param name="arrInput">byte型数组</param>

       /// <returns>目标字符串</returns>

       private string ByteArrayToString(byte[] arrInput)

       {

           int i;

           StringBuilder sOutput = new StringBuilder(arrInput.Length);

           for (i = 0; i < arrInput.Length; i++)

           {

               sOutput.Append(arrInput[i].ToString("X2"));  

           }

           //将此实例的值转换为System.String

           return sOutput.ToString();

       }


 


       /// <summary>

       /// 对接收到的数据进行解包(将接收到的byte型数组解包为Unicode字符串)

       /// </summary>

       /// <param name="recbytes">byte型数组</param>

       /// <returns>Unicode编码的字符串</returns>

       public string disPackage(byte[] recbytes)

       {

           string temp = "";

           foreach (byte b in recbytes)

               temp += b.ToString("X2") + " ";//ToString("X2") 为C#中的字符串格式控制符

           return temp;

       }


======================================================


ToString("X2") 为C#中的字符串格式控制符


X为     十六进制 

2为     每次都是两位数


比如   0x0A ,若没有2,就只会输出0xA 

假设有两个数10和26,正常情况十六进制显示0xA、0x1A,这样看起来不整齐,为了好看,可以指定"X2",这样显示出来就是:0x0A、0x1A。


版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:下载 .NET 7.0 | ·下一条:NET Core 6.0之读取配置文件appsettings.json

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有