MD5介绍及相关应用

1.MD5的介绍

MD5算法是一种散列算法(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错)。

主要作用是验明真身,确保信息传输过程中的完整性和一致性


第三方支付用MD5对金额,订单号等进行散列计算,来保证数据是对方发出的。


同样的内容,每次生成的MD5值是一样的

2.使用C#模拟MD5

public static string GetMD5FromString(string msg)
{
    using(MD5 md5=MD5.Create())
    {
         byte[] msgBuffer=Encoding.UTF8.GetBytes(msg);
         //计算hash需要传递byte流
         byte[] md5Buffer=md5.ComputHash(msgBuffer);
         //需要将计算后的byte流转换成string类型
         StringBuilder sb=new StringBUilder();
         for(int i=0;i<md5Buffer.Length;i++)
         { 
             sb.Append(md5Buffer[i].ToString("x2"));
         }
         return sb.ToString();

    }

}
这是将字符串转换成MD5的方法

当然如果计算完加一个MD5.clear()(释放资源)会更好

 public static string GetMD5FromFile(string filePath)
        {
            using (MD5 md5 = MD5.Create())
            {
                //读取文件
                using (FileStream fs = File.OpenRead(filePath))
                {                   
                    byte[] md5Buffer = md5.ComputeHash(fs);
                    md5.Clear();
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < md5Buffer.Length; i++)
                    {
                        sb.Append(md5Buffer[i].ToString("x2"));
                    }
                    return sb.ToString();
                }
            }
        }

这是将文件转换成MD5的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值