本文主要是介绍Bcrypt加密算法_案例_好处_资料下载地址,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Bcrypt盐值加密
文章目录
- Bcrypt盐值加密
- 1.Bcrypt加密算法的好处
- 2.案例代码
- 3.jar包下载地址
- 4.Bcrypt中密码对比的过程
- 5.MD5中密码对比的过程
1.Bcrypt加密算法的好处
(1)Bcrypt对密码管理非常方便,采用hash+salt的方式,使用密码生成salt和hash,并将salt加入到hash里面去,从而使得salt不需要单独保存,同时嫌“MD5”计算速度太快,从而加入了反复执行的功能,降低暴力破解的风险。
(2)此种方式加密的好处是,尽管每次加密的明文相同,但当加上盐值之后,每次生成返回的密文都不一样
例如:每次对明文“123456”采用Bcrypt加密算法加密,生成的密文都会不一样。
2.案例代码
package com.gdc.util;import org.junit.Test;
import org.springframework.security.crypto.bcrypt.BCrypt;public class BcryptDemo {/*** 加密的演示* 1.加密过程:明文-->加密算法+盐值-->密文* (1)密文是一个盐值与密文的组合体*/@Testpublic void test1() {String password = "123456";//1.得到一个盐值String gensalt = BCrypt.gensalt();//2.使用盐值加密String hashpw = BCrypt.hashpw(password, gensalt);System.out.println("盐值:" + gensalt);System.out.println("密码:"+hashpw);}/*** 解密的演示* 1.解密过程:明文-->加密算法-->密文-->密码比对* (1)只给了密码,没有给盐值,是因为加密后的密文是盐值与密文的组合体*/@Testpublic void test2() {String password = "123456";boolean checkpw = BCrypt.checkpw(password, "$2a$10$m367hSsLvpOG9UvWwndxUuooNXeMBDsJyPdONiRAJU52/95WqGCD6");System.out.println(checkpw);}
}
3.jar包下载地址
(1)Bcrypt密文工具下载地址:
https://gitee.com/mzq-123/picture/raw/master/Bcrypt/BCrypt-de.jar
(2)Bcrypt密文生成工具下载地址:
https://gitee.com/mzq-123/picture/raw/master/Bcrypt/BCrypt-en.jar
4.Bcrypt中密码对比的过程
(1)明文
(2)加密算法
(3)密文
(4)密文和数据库中的密文对比(通过字节数组循环对比的)
它会极大的延长暴力破解的时间
5.MD5中密码对比的过程
(1)明文
(2)MD5加密算法
(3)密文
(4)密文和数据库中的密文对比(通过equals对比)
这篇关于Bcrypt加密算法_案例_好处_资料下载地址的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!