MD5和AES在项目中的使用方式与区别

MD5概述:

MD5消息摘要算法,MD5算法对输入任意长度的消息进行产生一个128位的消息摘要(常用16进制表示32个字符)

MD5特点:

不可逆:MD5不可逆,相同数据算出来的MD5值肯定相同,不同数据的MD5值肯定不同

压缩性:任意长度的数据,算出来的MD5值的长度都是固定的

抗修改性:对原数据进行任何改动,算出的MD5值就不相同

强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。

基于MD5的这些特点,我们项目中一般会使用MD5来进行密码的加密存储,当用户设置密码时,服务器只存储这个密码的MD5值,而不是进行明文存储,后期用户登录验证时,只需要将输入的密码再次用MD5计算,与服务器存储的MD5值进行比较即可验证身份,降低了用户密码泄露的风险,同时有管理员权限的工作人员也看不到用户的原密码。

AES加密概述:

高级加密标准(Advanced Encryption Standard,缩写:AES),是一种区块加密标准,也是最常见的对称加密算法,加密和解密用相同的密钥,AES支持三种长度的密钥:128位,192位,256位,AES 的安全性会随密钥长度呈指数增长。

填充方式:

NOPadding:不进行填充,要求加密的明文必须是16字节的整倍数

PkCS5Padding(默认):如果明文少于16个字节(128bit),在明文块末尾补足相应数量的字符,且每个字节的值等于缺少的字符数。

例:

   未填充明文
    1,2,3,4,5,6,7,8,9,

      填充明文(缺少五个满足16个字节)
    1,2,3,4,5,6,7,8,9,7,7,7,7,7,7,7

项目中:登录中为了实现一键登录功能,就可以使用AES加密,当用户登录成功后,将密码用AES加密存储到Cookie中,登陆时在将Cookie中的密码进行解密就可以成功登录,避免了Cookie存储明码导致的泄露问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值