[Spring]如何使用bcrypt

网友投稿 643 2022-09-02

[Spring]如何使用bcrypt

[Spring]如何使用bcrypt

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&数据库

注入:

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

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

参考:

2.结合spring通过注解来使用:http://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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:保存数组配置到PHP文件,一行代码搞定(php数组操作)
下一篇:PHP大文件分片上传的实现方法,你会用嘛(php多图片上传)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~