BCrypt入门

本文介绍了BCrypt作为密码加密算法的优势,对比了它与MD5的安全性,并详细阐述了BCrypt的加密原理。提供了一个简单的Java入门案例,包括密码加密和校验的代码实现。

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

开发工具与关键技术:IntelliJ IDEA java
作者:木林森
撰写时间:2021年4月27日
在用户模块,对于用户密码的保护,通常都会进行加密然后存放在数据库中,在用户进行登录的时候,将其输入的密码进行加密然后与数据库中存放的密文进行比较,以验证用户密码是否正确。目前,MD5和BCrypt比较流行。
BCrypt是单向Hash加密算法,一般用于密码加密,相对来说,BCrypt比MD5更安全 ,但是MD5加密会更快速。 MD5是一种可反向破解的密码加密,如果你的密文被截获它就可以在MD5在线解密破解得到密码,然后就可以根据你的账号密码登录账号。而Bcrypt类似Pbkdf2算法不可反向破解生成明文(不可逆加密),所以即使黑客截获到密文也无法转换成明文(BCrypt不支持反运算, 只支持密码校验)。虽然不能转换成明文密码,但是它还是会被彩虹破解,只是相对于破解时间来说两者差别巨大,如果非要举例说明一下,用彩虹破解MD5可能需要3分钟左右,而BCrypt就需要14年之久。所以一般都推荐使用bcrypt。
BCrypt加密原理:输入的明文密码通过10次循环加盐后得到myHash(版本+salt),然后存入数据库。系统在验证用户的口令时,需要从myHash中取出salt跟password进行hash;得到的结果保存在DB中的hash进行比对,如果一致才算验证通过。
bcrypt密码图解: 图片来源于网上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值