MD5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来, 经md2、md3和md4发展而来。
MD5具有很好的安全性(因为它具有不可逆的特征,加过密的密文经过解密后和加密前的东东相同的可能性极小)。
在脚本中引用:using System.Security.Cryptography;
/// <summary>
/// 通过数据流获取对应的md5文件
/// </summary>
/// <param name="stream">文件流</param>
/// <returns>md5字符串</returns>
private string GetMd5FromStream(System.IO.FileStream stream)
{
byte[] buff;
using (System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider())
{
buff = md5.ComputeHash(stream);
}
System.Text.StringBuilder builder = new System.Text.StringBuilder();
foreach (var item in buff)
{
builder.Append(item.ToString("x2"));//把二进制的字节,转换为16进制的数字形式的字符串
}
string res = builder.ToString();
return res;
}
/// <summary>
/// 获取MD5从byte数组
/// </summary>
/// <param name="data">输入的byte数组</param>
/// <returns>16进制的数字形式的字符串</returns>
private string GetMd5FromBytes(byte[] data)
{
byte[] buff;
using (MD5 md5 = new MD5CryptoServiceProvider())
{
buff = md5.ComputeHash(data);
}
StringBuilder builder = new StringBuilder();
foreach (var item in buff)
{
builder.Append(item.ToString("x2"));//把二进制的字节,转换为16进制的数字形式的字符串
}
string res = builder.ToString();
return res;
}