计算字符串的 MD5 哈希值,并将该哈希作为 32 字符的十六进制格式字符串返回。

此代码示例中创建的哈希字符串与能创建 32 字符的十六进制格式哈希字符串的任何 MD5 哈希函数兼容。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Security.Cryptography;
 6 
 7 namespace MD5jiami
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             Console.WriteLine("请输入一个字符串:");
14             string md5str=Md5Encrypt(Console.ReadLine());
15             Console.WriteLine(md5str);
16             Console.ReadKey();
17         }
18         private static string Md5Encrypt(string input)
19         {
20             //用来计算MD5值的对象
21             using(MD5 md5Hash=MD5.Create())
22             {
23                 //获取字符串对应的byte数组,计算MD5值
24                 byte[] md5Byts = md5Hash.ComputeHash(Encoding.Default.GetBytes(input));
25                 //创建一个新的Stringbuilder来收集的字节和创建一个字符串
26                 StringBuilder sb = new StringBuilder();
27                 //循环遍历每个字节的散列的数据和每一个十六进制格式字符串
28 
29                 for (int i = 0; i < md5Byts.Length; i++)
30                 {
31                     //"x"表示16进制,2表示保留两位,例:2——>02
32                     sb.Append(md5Byts[i].ToString("x2"));
33                 }
34                 //返回十六进制字符串。
35                 return sb.ToString();
36             }
37             
38         }
39     }
40 }

posted on 2012-10-27 10:48  striver_hk  阅读(1047)  评论(0编辑  收藏  举报