文档章节

使用BCrypt算法免除存储salt

foodon
 foodon
发布于 2015/08/15 12:09
字数 372
阅读 6312
收藏 15

用户表的密码通常使用MD5等不可逆算法加密后存储,为防止彩虹表破解更会先使用一个特定的字符串(如域名)加密,然后再使用一个随机的salt(盐值)加密。

特定字符串是程序代码中固定的,salt是每个密码单独随机,一般给用户表加一个字段单独存储,比较麻烦。

BCrypt算法将salt随机并混入最终加密后的密码,验证时也无需单独提供之前的salt,从而无需单独处理salt问题。

用法很简单:

//hashed就是明文密码password加密后的结果,存储到数据库
String hashed = BCrypt.hashpw(password, BCrypt.gensalt());

//candidate是明文密码,checkpw方法返回的是boolean
if (BCrypt.checkpw(candidate, hashed))
    System.out.println("It matches");
else
    System.out.println("It does not match");



 
BCrypt下载:http://www.mindrot.org/projects/jBCrypt/

© 著作权归作者所有

共有 人打赏支持
foodon
粉丝 59
博文 56
码字总数 27005
作品 0
海淀
技术主管
私信 提问
加载中

评论(1)

cokolin
cokolin
看看加密后哈希值的前几位,与盐对比一下,你就会发现哈希值里面带盐了
加解密工具--jBCrypt

java版Bcrypt ,加解密工具 (用于账号密码加密,被时间检证过了) ,对用户的口令进行Hash,并使用salt,以防止Rainbow 攻击(Hash算法可用MD5或SHA1等,对口令使用salt的意思是,user 在设定密...

匿名
2012/09/25
2.4K
1
深入解析Express下采用bcryptjs进行密码加密

本篇文章主要介绍了Express下采用bcryptjs进行密码加密的方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 bcrypt,是一个跨平...

前端攻城老湿
2018/12/30
0
0
django 1.8 官方文档翻译:13-1-3 密码管理

Django中的密码管理 密码管理在非必要情况下一般不会重新发明,Django致力于提供一套安全、灵活的工具集来管理用户密码。本文档描述Django存储密码和hash存储方法配置的方式,以及使用hash密...

apachecn_飞龙
2015/09/20
0
0
简析Jenkins专有用户数据库加密算法

Jenkins访问控制分为:安全域(即认证)与授权策略。 其中,安全域可以采用三种形式,分别为:Jenkins专有用户数据库、LDAP、Servlet容器代理。 Jenkins专有用户的数据信息存放位置:<JENKIN...

donhui
2015/02/25
0
10
如何安全的存储密码 - hash、salt 以及更多

最近爆出的网站安全问题越来越多,甚至有部分网站的密码泄露,这是一篇简单的教程,教你如何更加安全的保存密码。我这里说的“安全”是指当密码泄露以后,对方需要相当一段时间来破解以获得明...

虫虫
2012/06/11
5.5K
10

没有更多内容

加载失败,请刷新页面

加载更多

跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
19分钟前
1
0
Android Studio jni开发入门——看我就够了

一、环境配置 主要需要配置的就是NDK(Native Development Kit),现在Android studio很便利,可以一键下载: file → setting → 按截图找到如下路径 → 选择NDK → 确定应用下载 NDK安装 ...

天王盖地虎626
20分钟前
1
0
day26:shell题

1、 判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor id一行中。 如果其生产商为AuthenticAMD,就显示其为AMD公司; 如果其生产商为GenuineIntel,就显示其为Intel公司; 否则,...

芬野de博客
30分钟前
1
0
iOS开发之CoreMotion框架的应用

iOS开发之CoreMotion框架的应用 我们知道,现在智能手机手机的功能已经越来越强大。小小的手机中集成了众多的传感器配件。通过这些传感器可以获取到手机甚至用户的状态信息。 在iOS5之前,加...

珲少
33分钟前
1
0
python里能不能用中文

现代计算机和编程的起源和推动力量主要源自美国,再加上26个字母很便于表示(算上大小写,6位bit就够了),因此英语一直是编程领域的不二之选。但这就给部分非英语国家的编程学习者带来一些困...

crossin
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部