什么是md5

MD5是一种不可逆的散列算法,常用于密码存储和一致性校验。在密码存储中,它保护用户信息不被直接暴露。在一致性校验中,确保数据在传输过程中的完整性和安全性。提高MD5安全性的方式包括加盐和多次加密。加盐可以防止常见密码对照表破解,多次加密则增加破解难度。
摘要由CSDN通过智能技术生成

什么是md5?

md5是一种不可逆的散列算法

  1. 不可逆:从明文可以得到密文,但是从密文不可以得到明文。
  2. 散列:通过一种函数得到一个映射值,有可能是重复的!但重复的概率比较低,例如设置字符+大小写字母+数字的密码,能通过散列得到相同密文的概率就非常非常低了。

在这里插入图片描述

应用场景

  1. 密码存储:
    处于安全考虑,原生密码不能直接储存到数据库中,如果数据泄露会导致许多问题,因此,会将密码经过md5加密后储存至数据库,这个大家肯定都知道。

  2. 一致性校验:
    这个是我在做支付签名时候发现的一种用法,以前没有使用过。客户端调用第三方支付时,需要是用http(s)传输请求,一旦请求被拦截,被修改,例如支付1000元,被拦截成1元,支付成功后,第三方返回支付成功的结果,会造成严重损失。

    于是人们使用一段密文,将请求参数加工为一个字符串:例如“amount=50&payMethod=native&id=012345”,然后将这个字符串进行加密,请求时一同发送。收到请求后和明文参数做一次一致性的校验,校验参数的一致性。在这里插入图片描述
    当然,真正的涉及到支付的加密手段会更加复杂,例如证书等,使用这个例子只是说明md5可以作为一种校验密码一致性的一种手段。

如何提高安全性

  1. 加盐
    盐值就是一段无意义的随机字符串,可以是一段uuid,也可以是一段随机数字。加盐可以避免黑客使用一些对照表破解简单的密码(比如123456,password这些常用密码,使用频率很高,可以从对照表中查询到)。

  2. 多次加密
    将加密过md5密码再加密,循环几次,这样形成的密文也无法通过对照表来找到。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值