[Spring]如何使用bcrypt

标签: spring bcrypt | 发表时间:2019-02-27 16:08 | 作者:繁星水
出处:https://www.iteye.com

1.先上代码

BCryptPasswordEncoder bcrypt = new BCryptPasswordEncoder(9);
String pwdCry = bcrypt.encode(pwd);

 2.分析:

加密后的密码长度都是60

格式一般都是$2a$X,X是strength,通过初始化类时设置,默认是10

 

3.bcrypt:

bcrypt is not an encryption function, it's a password hashing function, relying on Blowfish's key scheduling, not its encryption. Hashing are mathematical one-way functions, meaning there is no* way to reverse the output string to get the input string.

意思是bcrypt是单向的,无法解密

 

4.匹配:

调用bcrypt.match(原始密码,加密后密码)

 

5.结合spring&数据库

<bean id="encoder"
         class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder">
        <constructor-arg name="strength" value="9" />
   </beans:bean>

 注入:

@Autowired
@Qualifier("passwordEncoder")
BCryptPasswordEncoder bcrypt;

 判断逻辑:不再传入username和password,因为每次加密都不同值,所以只传入username然后查出DB加密了的password,然后通过matches()来判断

 

参考:

1.bcrypt:https://blog.csdn.net/qq_35232663/article/details/81259681

2.结合spring通过注解来使用:http://www.programming-free.com/2015/09/spring-security-password-encryption.html

3.如何结合DB来使用bcrypt的问答:https://stackoverflow.com/questions/42795509/compare-entered-password-with-bcrypt-hashed-password-in-database



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [spring bcrypt] 推荐:

[Spring]如何使用bcrypt

- - 开源软件 - ITeye博客
加密后的密码长度都是60. 格式一般都是$2a$X,X是strength,通过初始化类时设置,默认是10. 意思是bcrypt是单向的,无法解密. 调用bcrypt.match(原始密码,加密后密码). 5.结合spring&数据库.  判断逻辑:不再传入username和password,因为每次加密都不同值,所以只传入username然后查出DB加密了的password,然后通过matches()来判断.

spring security 3中推荐使用BCrypt算法加密密码

- - jackyrong
spring security 3中推荐使用BCrypt算法加密密码了,以前使用的是md5,. Md5PasswordEncoder 和 ShaPasswordEncoder,现在不推荐了,推荐用bcrpt. Bcrpt中的salt可以是随机的,比如:.   其中strenth为长度. 已有 0 人发表留言,猛击->> 这里<<-参与讨论.

Bcrypt 准备说再见

- - 奇客Solidot–传递最新科技情报
流行密码哈希算法 Bcrypt 已走过了四分之一世纪. 它的长寿要归功于其开源可用性和技术特征. Bcrypt 的共同发明人 Niels Provos 希望在庆祝其下一个重要生日前 Bcrypt 将不再流行. bcrypt 最早是随 OpenBSD 2.1 在 1997 年发布的,当时美国还对加密算法实施出口禁令,而 Provos 在德国长大在德国生活期间参与开发了 Bcrypt.

Spring详解

- - CSDN博客架构设计推荐文章
Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目的是简化企业开发.. PersonDaoBean 是在应用内部创建及维护的. 所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.

Spring定时

- - 行业应用 - ITeye博客
spring的定时任务配置分为三个步骤:. . . . . .

简单Spring+hessian

- - Web前端 - ITeye博客
简单的Spring+hessian. dist\modules里面的 spring-webmvc.jar . lib\caucho 里面的hessian-3.1.3.jar. 里面有个接口interface:. 建立一个model层:(实现Serializable接口). 在WEB-INF下面创建一个remoting-servlet.xml:.

Spring MVC 和 Struts2

- - CSDN博客架构设计推荐文章
Web层面的框架学习了三个Struts1和2,SpringMVC,那他们之间肯定存在一个优劣和适用的环境,Struts1和2的异同点我已经做过对比《 Struts1和Struts2》,这篇将对比下Struts2和SpringMVC的异同,下面数据基本来源于网络,本人是搜集整理所得,供大家参考. 一个项目使用什么样的技术,决定的因素很多,我所能想到的有:对系统的性能、开发的效率、团队学习的成本、业务场景等,下面尽量从这几个方面入手,来分析比较下他们之间存在的优劣.

Spring AOP详解

- - Java - 编程语言 - ITeye博客
        最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP来解决. 一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容. 例如,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智. 1.对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用情况.

spring roo 入门

- - 企业架构 - ITeye博客
Spring官网下载STS(如果没有STS). 创建Spring Roo基础项目. 根 据ROO的提示输入jpa setup再按ctrl+space,很遗憾这个快捷键已经被输入法切换占用,不能借助提示输入命令,但我们可以打开ROO命令向导,这里我们输入jpa 可以查到这条命令的用法,根据提示增加provider和database选项来完成命令.

Spring Rmi配置

- - 企业架构 - ITeye博客
现在远程调用一般用RPC,webservice或者Rmi,而目前用的比较多的是webservice和Rmi. webservice和rmi的最主要的区别,rmi的客户端和服务端都必须是java,webservice没有这个限制,webservice是在http协议上传递xml文本文件. 与语言和平台无关,rmi是在tcp协议上传递可序列化的java对象,只能用在java虚拟机上,绑定语言.