扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
1/**//// <summary> 2 /// 方法一:通过使用 new 运算符创建对象 3 /// </summary> 4 /// <param name="strSource">需要加密的明文</param> 5 /// <returns>返回16位加密结果,该结果取32位加密结果的第9位到25位</returns> 6 public string Get_MD5_Method1(string strSource) 7 { 8 //new 9 System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); 10 11 //获取密文字节数组 12 byte[] bytResult = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strSource)); 13 14 //转换成字符串,并取9到25位 15 string strResult = BitConverter.ToString(bytResult, 4, 8); 16 //转换成字符串,32位 17 //string strResult = BitConverter.ToString(bytResult); 18 19 //BitConverter转换出来的字符串会在每个字符中间产生一个分隔符,需要去除掉 20 strResult = strResult.Replace("-", ""); 21 return strResult; 22 } 23 24 /**//// <summary> 25 /// 方法二:通过调用特定加密算法的抽象类上的 Create 方法,创建实现特定加密算法的对象。 26 /// </summary> 27 /// <param name="strSource">需要加密的明文</param> 28 /// <returns>返回32位加密结果</returns> 29 public string Get_MD5_Method2(string strSource) 30 { 31 string strResult = ""; 32 33 //Create 34 System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create(); 35 36 //注意编码UTF8、UTF7、Unicode等的选择 37 byte[] bytResult = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(strSource)); 38 39 //字节类型的数组转换为字符串 40 for (int i = 0; i < bytResult.Length; i++) 41 { 42 //16进制转换 43 strResult = strResult + bytResult[i].ToString("X"); 44 } 45 return strResult; 46 } 47 48 /**//// <summary> 49 /// 方法三:直接使用HashPasswordForStoringInConfigFile生成 50 /// </summary> 51 /// <param name="strSource">需要加密的明文</param> 52 /// <returns>返回32位加密结果</returns> 53 public string Get_MD5_Method3(string strSource) 54 { 55 return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5"); 56 } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者