一個很簡化的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

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