本文原地址: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

(转)C# MD5的更多相关文章

  1. 关于CryptoJS中md5加密以及aes加密的随笔

    最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...

  2. Android数据加密之MD5加密

    前言: 项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法. 什么是MD5加密? MD5英文全称“Message-Digest Algorithm 5 ...

  3. [C#] 简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)

    using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Wen. ...

  4. java单向加密算法小结(2)--MD5哈希算法

    上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符 ...

  5. android_m2repository_rxx.zip下载地址以及MD5

    地址 MD5 https://dl-ssl.google.com/android/repository/android_m2repository_r08.zip 8C8EC4C731B7F55E646 ...

  6. 一种简单的md5加盐加密的方法(防止彩虹表撞库)

    md5加密(或者说摘要算法)大家都很熟悉了 就不解释了 现在很多数据库设计都喜欢用单向加密的方式保存密码,验证时对提交的密码再次加密之后做密文对比 /// <summary> 使用MD5加 ...

  7. 2、摘要函数——MD2/MD4/MD5数字签名

    摘要是用来防止数据被私自改动的方法,其中用到的函数叫做摘要函数.这些函数的输入可以是任意大小的信息,但是输出是大小固定的摘要.摘要有个重要的特性:如果改变了输入信息的任何内容,即使改变一位,输出也将发 ...

  8. c#官方推荐md5通用加密类

    /// <summary> /// MD5加密 /// </summary> /// <param name="input">需要加密的字符串& ...

  9. 密码学应用(DES,AES, MD5, SHA1, RSA, Salt, Pkcs8)

    目录 一.数据加密标准 - Data Encryption Standard(DES) 二.高级加密标准 - Advanced Encryption Standard(AES) 三.消息摘要算法第五版 ...

  10. 原创:MD5 32位加密软件

    网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想. 网站后台密码加密大多数采用的就是MD5算法加密.今天给大家送一个本人用c#简单编写的MD5 32位加密程序,虽 ...

随机推荐

  1. angularjs实现IOS8自带计算器

    最近看到一则面试题目,要求使用angularjs实现一个计算器,利用放假时间实现了一个仿iOS8风格的计算器,功能基本和iOS自带的计算器是一致的. 查看demo,接着给出实现过程. 首先创建angu ...

  2. Kettle使用jndi mssqlserver

    kettle可以使用jdbc的方式设置job或者tansform的数据库连接,但是,同时它也支持JNDI方式连接数据库,后者更加方便,只需要配置一份配置文件就可以了,不用每个DBConnection都 ...

  3. Web前端相关

    1)emmet2)prettify3)angularjs4)coffeescript5)bower (nodejs)6)requirejs

  4. of

    “查询序列的一个元素” 1. an element of the query sequence (T) 2. an query sequence element (T) "查询序列或者候选序 ...

  5. input 字符限制

    1,文本框只能输入数字代码(小数点也不能输入): onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste=&q ...

  6. MySQL计算时间差

    MySQL计算两个日期的时间差函数:TIMESTAMPDIFF 语法: TIMESTAMPDIFF(interval, datetime_expr1, datetime_expr2) interval ...

  7. bzoj4637: 期望

    Description 在米国有一所大学,名叫万国歌剧与信息大学(UniversalOperaandInformaticasUniversity).简称UOI大学.UO I大学的建筑与道路分布很有趣, ...

  8. Winform/WPF国际化处理

    1.Winfrom国际化处理方式 ==> Winform中国际化支持可将UI页面和.cs文件分开处理 处理窗体方式如下:1.选择Form窗体设置其--Language(默认中文--Default ...

  9. 【Android学习日记】

    (一) Android 开发基础 1 Android平台的特性 1)  应用程序框架支持组建的重用和替换,包括打电话应用程序.文件管理器等. 2)  Dalvik虚拟机专门为移动设备做了优化,Dalv ...

  10. cent os下面的基本配置操作

    二,修改Linux分辨率命令行 在root用户模式下,输入$ vi /boot/grub/grub.conf(路径可能会不一样,也可以是 /etc/grub.conf),打开grub.conf文件 我 ...