MD5加密

由于MD5是不可逆的,所以加密之后就无法解密.要想匹配两个字段是否一样,只有都对两个字段进行MD5加密再判断。

两个字符串经过MD5 32或者64加密后是一样的,可以用CompareTo()方法比较,返回0和==比较。

 1         /// <summary>
 2         /// 32位MD5加密,由于MD5是不可逆的,所以加密之后就无法解密
 3         /// </summary>
 4         /// <param name="str">需加密的字符串</param>
 5         /// <returns>加密后的字符</returns>
 6         public static string Md5Encryption(string str)
 7         {
 8             MD5 md5 = new MD5CryptoServiceProvider();
 9             byte[] data = System.Text.Encoding.Unicode.GetBytes(str);
10             byte[] todata = md5.ComputeHash(data);
11             string bytestr = null;
12             for (int i = 0; i < todata.Length; i++)
13             {
14                 bytestr += todata[i].ToString("x");
15             }
16             return bytestr;
17         }
 1         /// <summary>
 2         /// 64位MD5加密
 3         /// </summary>
 4         /// <param name="str">需加密的字符串</param>
 5         /// <returns>加密后的字符</returns>
 6         public static string MD5ToBase64String(string str)
 7         {
 8             MD5 md5 = new MD5CryptoServiceProvider();
 9             byte[] MD5 = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str));//MD5(注意UTF8编码)
10             string result = Convert.ToBase64String(MD5, 0, MD5.Length);//Base64
11             return result;
12         }

 

posted @ 2016-09-05 14:49  花生打代码会头痛  阅读(147)  评论(0)    收藏  举报