MD5加密盐值的问题和BCryptPasswordEncoder解决方案

MD5作为密码加密手段存在彩虹表破解的风险,通过添加盐值可以增强安全性,但盐值管理和存储带来额外开销。Spring框架提供的BCryptPasswordEncoder解决了这一问题,提供更安全的密码加密方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MD5是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。一般我们用作于账号密码的加密、redis中的大key压缩等。但是目前的MD5很容易被一些网站反破解例如:

 

容易被利用彩虹表暴力破解解决掉,所以我们可以用一些拼串的方式解决,而数据库还要专门存一下这个串以及每次还要查找对比很浪费时间,所以又有了一个盐值的概念

盐值:这里的“佐料”被称作“Salt值”,这个值是由系统随机生成的,并且只有系统知道。这样,即便两个用户使用了同一个密码,由于系统为它们生成的salt值不同,他们的散列值也是不同的。即便黑客可以通过自己的密码和自己生成的散列值来找具有特定密码的用户,但这个几率太小了(密码和salt值都得和黑客使用的一样才行)。

每次组合的时候加上这个盐值就可以得到其最后加密,然后进行校验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值