一个很简化的C#消息摘要算法

 在程序中经常都要用到消息摘要算法, 如密码的摘要算法. 不过在.NET中的处理方式稍微有那么一点复杂了, 有时候我们希望以更简单的方式完成, 下面的代码是可以简化这个处理:

using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; namespace OOHacker.Example {   public class MyMessageDigest   {     //=========================================================================     // 返回长为40位的SHA-1加密字符串     //=========================================================================      public static string HexSHA(string text)     {       return MakeDigestTemplate(SHA1.Create(), text);     }     //=========================================================================     // 返回长为32位的MD5加密字符串     //=========================================================================     public static string HexMD5(string text)     {       return MakeDigestTemplate(MD5.Create(), text);     }     //=========================================================================     // 加密模板     //=========================================================================     private static string MakeDigestTemplate(HashAlgorithm algo, string text)     {       byte[] data = algo.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));       StringBuilder codes = new StringBuilder();       for (int i = 0; i < data.Length; ++i)       {         codes.Append(data[i].ToString("x2"));       }       return codes.ToString();     }   } }

使用方法很简单,如下所示:

string strmd5 = MyMessageDigest.HexMD5("oohacker"); string strsha = MyMessageDigest.HexSHA("oohacker"); Console.WriteLine("Hex MD5 Encryption: {0}", strmd5); Console.WriteLine("Hex SHA-1 Encryption: {0}", strsha);

输出结果如下:

Hex MD5 Encryption:     eccca05fb779dcece81656890773b7bf Hex SHA-1 Encryption:   67576ffe5410fb70651ef8fd550ecdb7a9901603

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章