【转】c#中的几种MD5算法

.net中,由 System.Security.Cryptography 命名空间提供了加密和哈希的几个类。其中 md5 编码由 MD5CryptoServiceProvider 实现。

在使用过程中由于 MD5CryptoServiceProvider 提供了多种方法去计算md5hash值,反而令人搞不清楚,所以这里帖出计算md5的几种常见方法

先引用命名空间:

using System.Security.Cryptography;

using System.Text;

然后:

MD5CryptoServiceProvider md5=new MD5CryptoServiceProvider();

string source="HelloWorld";

byte[] message;

message=Encoding.Default.GetBytes(source);

//方法1

//   使用ComputeHash方法,适合用于计算简单的字符串的md5值时

md5.ComputeHash(message);

Console.WriteLine(Convert.ToBase64String(md5.Hash));

   

//方法2

//   使用TransformFinalBlock方法,适合用于原始数据不多时

md5.Initialize();

md5.TransformFinalBlock(message,0,message.Length);

Console.WriteLine(Convert.ToBase64String(md5.Hash));

   

//方法3

//   此方法等同于方法2

md5.Initialize();

md5.TransformBlock(message,0,message.Length,

      message,0); //note: output bytes must equal input bytes

md5.TransformFinalBlock(message,0,0);

Console.WriteLine(Convert.ToBase64String(md5.Hash));

   

//方法4

//   将原始消息分两次编码,得出的结果跟上面的一样,适合用于计算大量原始数据时,例如计算一个文件的md5

md5.Initialize();

message=Encoding.Default.GetBytes("Hello");

md5.TransformBlock(message,0,message.Length,

      message,0);

message=Encoding.Default.GetBytes("World");

md5.TransformFinalBlock(message,0,message.Length);

Console.WriteLine(Convert.ToBase64String(md5.Hash));

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值