(转)C# MD5

时间:2023-03-09 18:01:09
(转)C# MD5

本文原地址:http://blog.csdn.net/zhoufoxcn/article/details/1497099 作者:周公

代码如下:

  1. using System;
  2. using System.Text;
  3. using System.Security.Cryptography;
  4. namespace Common
  5. {
  6. /// <summary>
  7. /// 一个实现MD5散列字符串的类
  8. /// 作者:周公
  9. /// 日期:2007
  10. /// </summary>
  11. public sealed class MD5Hashing
  12. {
  13. private static MD5 md5 = MD5.Create();
  14. //私有化构造函数
  15. private MD5Hashing()
  16. {
  17. }
  18. /// <summary>
  19. /// 使用utf8编码将字符串散列
  20. /// </summary>
  21. /// <param name="sourceString">要散列的字符串</param>
  22. /// <returns>散列后的字符串</returns>
  23. public static string HashString(string sourceString)
  24. {
  25. return HashString(Encoding.UTF8, sourceString);
  26. }
  27. /// <summary>
  28. /// 使用指定的编码将字符串散列
  29. /// </summary>
  30. /// <param name="encode">编码</param>
  31. /// <param name="sourceString">要散列的字符串</param>
  32. /// <returns>散列后的字符串</returns>
  33. public static string HashString(Encoding encode, string sourceString)
  34. {
  35. byte[] source = md5.ComputeHash(encode.GetBytes(sourceString));
  36. StringBuilder sBuilder = new StringBuilder();
  37. for (int i = 0; i < source.Length; i++)
  38. {
  39. sBuilder.Append(source[i].ToString("x2"));
  40. }
  41. return sBuilder.ToString();
  42. }
  43. }
  44. }

2010-04-05日注:

上面的代码对字符串进行MD5哈希计算的结果与下面的一句话等效:

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower())

其中str是要进行哈希计算的字符串,如果在ASP.NET应用中倒也罢了,如果在非ASP.NET应用中还需要增加对System.Web.dll的引用。

其它参考文章:http://www.cnblogs.com/94cool/archive/2010/05/25/1743642.html

       http://www.cnblogs.com/ahui/archive/2010/12/23/1914586.html

        http://www.cnblogs.com/Ruiky/archive/2012/04/16/2451663.html