Bcrypt加密算法_案例_好处_资料下载地址

Bcrypt盐值加密

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)密文是一个盐值与密文的组合体
	 */
	@Test
	public 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)只给了密码,没有给盐值,是因为加密后的密文是盐值与密文的组合体
	 */
	@Test
	public void test2() {
		String password = "123456";
		boolean checkpw = BCrypt.checkpw(password, "$2a$10$m367hSsLvpOG9UvWwndxUuooNXeMBDsJyPdONiRAJU52/95WqGCD6");
		System.out.println(checkpw);
	}
}

3.官网地址

https://www.mindrot.org/projects/jBCrypt/

3.1jar包下载地址

百度网盘:https://pan.baidu.com/s/1S4gtpJKG2jAqdxJhXwqdYw?pwd=j38i
提取码:j38i

4.Bcrypt中密码对比的过程

(1)明文
(2)加密算法
(3)密文
(4)密文和数据库中的密文对比(通过字节数组循环对比的)

它会极大的延长暴力破解的时间

5.MD5中密码对比的过程

(1)明文
(2)MD5加密算法
(3)密文
(4)密文和数据库中的密文对比(通过equals对比)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值