C#中使⽤MD5算法计算hash(哈希)值的四种⽅法在中,由 System.Security.Cryptography 命名空间提供了加密和哈希的⼏个类。其中 md5 编码由 MD5CryptoServiceProvider 实现。
在使⽤过程中由于 MD5CryptoServiceProvider 提供了多种⽅法去计算md5的hash值,反⽽令⼈搞不清楚,所以这⾥帖出计算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));
writeline使用方法python
//⽅法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));

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。