你的位置:首页 > ASP.net教程

[ASP.net教程]C#:Md5和Sha1两种加密方式

1.新建控制台应用程序

 

2.新建类 EncryptHelper.cs

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

 

3.修改 Program.cs

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

View Code

 

4.效果图