首页 > 编程 > C# > 正文

浅谈C#中Md5和Sha1两种加密方式

2019-10-29 21:41:35
字体:
来源:转载
供稿:网友

这篇文章主要介绍了浅谈C#中Md5和Sha1两种加密方式的相关资料,需要的朋友可以参考下

1.新建控制台应用程序

2.新建类 EncryptHelper.cs

 

 
  1. public static class EncryptHelper 
  2. /// <summary> 
  3. /// 基于Md5的自定义加密字符串方法:输入一个字符串,返回一个由32个字符组成的十六进制的哈希散列(字符串)。 
  4. /// </summary> 
  5. /// <param name="str">要加密的字符串</param> 
  6. /// <returns>加密后的十六进制的哈希散列(字符串)</returns> 
  7. public static string Md5(this string str) 
  8. //将输入字符串转换成字节数组 
  9. var buffer = Encoding.Default.GetBytes(str); 
  10. //接着,创建Md5对象进行散列计算 
  11. var data = MD5.Create().ComputeHash(buffer); 
  12.  
  13. //创建一个新的Stringbuilder收集字节 
  14. var sb = new StringBuilder(); 
  15.  
  16. //遍历每个字节的散列数据  
  17. foreach (var t in data) 
  18. //格式每一个十六进制字符串 
  19. sb.Append(t.ToString("X2")); 
  20.  
  21. //返回十六进制字符串 
  22. return sb.ToString(); 
  23.  
  24. /// <summary> 
  25. /// 基于Sha1的自定义加密字符串方法:输入一个字符串,返回一个由40个字符组成的十六进制的哈希散列(字符串)。 
  26. /// </summary> 
  27. /// <param name="str">要加密的字符串</param> 
  28. /// <returns>加密后的十六进制的哈希散列(字符串)</returns> 
  29. public static string Sha1(this string str) 
  30. var buffer = Encoding.UTF8.GetBytes(str); 
  31. var data = SHA1.Create().ComputeHash(buffer); 
  32.  
  33. var sb = new StringBuilder(); 
  34. foreach (var t in data) 
  35. sb.Append(t.ToString("X2")); 
  36.  
  37. return sb.ToString(); 

3.修改 Program.cs 进行输出

 

 
  1. class Program 
  2. static void Main(string[] args) 
  3. const string s = "123456"
  4. Console.WriteLine("密码:"+s); 
  5.  
  6. Console.WriteLine("Md5:"+s.Md5()); 
  7. Console.WriteLine("长度:"+s.Md5().Length); 
  8.  
  9. Console.WriteLine("Sha1:" + s.Sha1()); 
  10. Console.WriteLine("长度:" + s.Sha1().Length); 
  11.  
  12. Console.Read(); 

4.效果图

浅谈C#中Md5和Sha1两种加密方式

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表