JBCrypt:方便的密码管理工具类

BitLuminaryPro
• 阅读 5168

介绍

JBCrypt对管理密码非常方便,采用hash+salt的方式,使用密码生成salt和hash,并将salt加入到hash里面去,从而使得salt不需要单独保存,同时嫌“MD5”计算速度“太快”,从而加入了反复执行的功能,降低暴力破解的风险。

详细介绍

项目git地址:https://github.com/jeremyh/jB...
项目maven:

<!-- https://mvnrepository.com/artifact/org.mindrot/jbcrypt -->
<dependency>
    <groupId>org.mindrot</groupId>
    <artifactId>jbcrypt</artifactId>
    <version>0.4</version>
</dependency>

重要方法

BCrypt.gensalt() : 生成salt的方法,一般不需要单独调用,和下面的方法一起使用。

BCrypt.hashpw(password, BCrypt.gensalt(4)):生成hash密码,传入用户密码和salt。虽然是在生成salt的时候传入了一个整数,单该数字只是加在了盐的前缀上,用于在计算hash的时候使用。

BCrypt.checkpw(candidate, hashed):密码验证,传入密码候选值和hash密码,返回布尔值。

应用

在之前的一些web系统中,会使用MD5+SALT的方法,每个用户的salt不同,还要单独保存。使用JBCrypt的话,salt就可以隐藏起来了,系统不需要保存salt,因为salt就保存在hash密码中了。又一个开箱即用的好工具。

其他

在JBCrypt中,使用了JDK8的SecureRandom类,关于随机数,请参考 Java中生成随机数Random、ThreadLocalRandom、SecureRandomRandom函数的安全性问题与SecureRandom

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
雷厉风行 雷厉风行
2年前
1Password 7 for Mac 自带激活版-MacOS密码管理,自动登录,用过就离不开了
1Password7forMac是一款功能强大的密码管理软件,它可以帮助Mac用户管理和保护所有的密码和敏感信息。它不仅可以加密存储您的密码,而且可以帮助您自动生成复杂的密码,并提高您在互联网上的安全性。
代码还原小试牛刀(一):魔改的MD5
一、目标2023年了,MD5已经是最基础的签名算法了,但如果你还只是对输入做了简单的MD5,肯定会被同行们嘲笑。加点盐(salt)是一种基本的提升,但在这个就业形势严峻的时代,仅仅加盐肯定不够了。今天我们就来讲一讲魔改的MD5,让这个算法高大上起来。1、菜
Stella981 Stella981
3年前
SaltStack入门篇(一)之SaltStack部署
一、SaltStack概述Salt,,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。salt底层采用动态的连接总线,使其可以用于编配,远程执行,配置管理等等.多种配置管理工具对比:Puppet(rubby开发,现在很少使用)ansi
Stella981 Stella981
3年前
Git远程推送时记住用户名和密码
当使用HTTPS协议推送代码到Git仓库时,发现每次都需要输入密码,操作起来非常麻烦。下面介绍几种免去输入密码的方法。HTTPS协议推送使用HTTPS协议,有一种简单粗暴的方式是在远程地址中带上密码。gitremoteseturloriginhttp://yourname:password@bitbucket.org
Wesley13 Wesley13
3年前
JAVA加解密算法设计与应用
业务场景APP移动端、WEB、桌面端、第三方平台密码等敏感数据加密设计如app端登录密码加密设计对于登录密码不需要进行解密只需要加密算法结合规则进行比较就能得到密码正确与否方法一(签名保证安全)1.密码等敏感信息取Md5值对所有值(加上timestamp)
Wesley13 Wesley13
3年前
mysql用户
1\.学会能按着需求创建一个帐号2\.知道连接字符串是什么样3\.密码密码怎么恢复mysql用户权限介绍mysql用户管理 !(https://oscimg.oschina.net/oscnet/368d3c1e00a0a9515545c2962660a27a080.png)!(https://oscimg.oschin
Stella981 Stella981
3年前
Python简单密码加密程序,加盐(salt)md5
\python\ viewplain(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fblog.csdn.net%2Fcolourless%2Farticle%2Fdetails%2F41440963%23)copy(https://www.oschina.net/a
Stella981 Stella981
3年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin
融云IM即时通讯 融云IM即时通讯
7个月前
融云IM干货丨那如果不使用 HTTPS,会有哪些风险呢?
不使用HTTPS会面临以下风险:数据泄露风险:HTTP协议是明文传输的,意味着用户输入的账号、密码等敏感信息在传输过程中是未加密的。这使得黑客可以轻松地通过监听网络流量来截获这些信息,从而导致用户数据泄露。信任度下降:现代互联网用户对网站的安全性有较高的期