BCrypt算法,想想spring security里的BCryptPasswordEncoder

实现类似于spring security里的BCryptPasswordEncoder。

方式1

这个jar太牛了,只有一个类。自述(pom里的URL)项目地址 http://www.mindrot.org/projects/jBCrypt

		<dependency>
		   <groupId>de.svenkubiak</groupId>
		   <artifactId>jBCrypt</artifactId>
		   <version>0.4.3</version>
		</dependency>
package org.test;

import org.mindrot.jbcrypt.BCrypt;

public class BCryptTest {
	public static void main(String[] args) {
		String pass = "123456";

		for (int i = 0; i < 30; i++) {
			String slat = BCrypt.gensalt();
			String hashed = BCrypt.hashpw(pass, slat);

			boolean check = BCrypt.checkpw(pass, hashed); // hash完后的,是否和原始的一致

			boolean check2 = BCrypt.checkpw(pass + "" + i, hashed); // 故意写错,应该为false

			System.out.println(String.format("slat: %s, hashed:%s, 校验是否一致:%s, 故意写错,校验是否一致:%s", slat, hashed, check, check2));
		}
	}
}
slat: $2a$10$MAXJkGEmU1U5kn/9gNVwDO, hashed:$2a$10$MAXJkGEmU1U5kn/9gNVwDOUWzqo/CcTj9fcL02PQLOjq.r8VRwbMu, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$hybHi4IZEwBhaCLuTjaueO, hashed:$2a$10$hybHi4IZEwBhaCLuTjaueOMSKIYY5QLepVw2iQBrNbFjJhVhBKOrm, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$/tXZMpsNX1YK1h98HJh0zO, hashed:$2a$10$/tXZMpsNX1YK1h98HJh0zO7GJxEQ2j5t8n6qBcZzOcfRbQdSQy27q, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$ocNswkqngx.Bp3Jl5g7QaO, hashed:$2a$10$ocNswkqngx.Bp3Jl5g7QaO7eotBYjFOsimoutTxDvRRFJJgF1JMuW, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$f.SvQ3dUdoYWtLUANOY0pO, hashed:$2a$10$f.SvQ3dUdoYWtLUANOY0pONmZgjNRc5UjmjT/c7LFqFYRWMuazcDa, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$n0gNGPxz8vNkuBaMCYOGLe, hashed:$2a$10$n0gNGPxz8vNkuBaMCYOGLeXJyiTZ.mRRPYaddEYzCpgPXi7BRHql2, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$LEi78akyLo/wu130kVncsu, hashed:$2a$10$LEi78akyLo/wu130kVncsualBLXNf8VoNy8l2OZIuSqDjo5aEeytS, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$Sp2Od900A8PjJzp8fxBvUe, hashed:$2a$10$Sp2Od900A8PjJzp8fxBvUeDPNoa9M9ARqI9orSrZMIE.OWoiA6oh., 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$pjdLX/MTzzCv8NqjQzj9yO, hashed:$2a$10$pjdLX/MTzzCv8NqjQzj9yOHTOAJaJs/Lbwu1fdrZ/VjLM1ho9wqgS, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$9c9xBOj.h7DN1FLH1uqYp., hashed:$2a$10$9c9xBOj.h7DN1FLH1uqYp.iQGnyZ3LixF7xPWt7WQ4zwmNyn..Wi6, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$EKHlcxgxlgdSh1VHB4DOQu, hashed:$2a$10$EKHlcxgxlgdSh1VHB4DOQu2YUNTk3Dk7uwz5Aa0fl6Z2v32w1y4zW, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$VpIlW0MGJKoC6wUVfJfw1e, hashed:$2a$10$VpIlW0MGJKoC6wUVfJfw1eYl8PP0O7OPxmvRQ06HrimgCcxBxxzr2, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$Ln4D8ZCJV6lGaXXkveeTRu, hashed:$2a$10$Ln4D8ZCJV6lGaXXkveeTRuZbs2a4OfJFhrCXMK7LbcBhYUhR240ua, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$H7q0TBZmRt14XCy56Wr2qu, hashed:$2a$10$H7q0TBZmRt14XCy56Wr2qunY1pnD6BWr1ISLwXy48A4yp22lOQew., 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$jxj.QHW3Px6inLm9LXM0wO, hashed:$2a$10$jxj.QHW3Px6inLm9LXM0wO0MYgJS2GAD0M.zIahr6OcmyqEU0iR5i, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$RLUJEStfhqyamDCRf/b1dO, hashed:$2a$10$RLUJEStfhqyamDCRf/b1dOTDqY9CNG0agxfDqHwALy62zmK5PMdUu, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$HVfjG47oOywV.rxnIIWg2., hashed:$2a$10$HVfjG47oOywV.rxnIIWg2.ioR7b8hPIvrpOLRoHY8Q8CvZ0iaUiti, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$DgOjonkLUqVDK1JQ5A9cO., hashed:$2a$10$DgOjonkLUqVDK1JQ5A9cO.31/kVmc1VdI8mRaSkMrokP2CDdd6Y76, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$00wdI32FAngnRsF7Ud93IO, hashed:$2a$10$00wdI32FAngnRsF7Ud93IOWXgGhPS/A/.OQV1Uoy0.geMBB0dxxeC, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$XsM3Bx3ZaEWwGlMgJLzpTe, hashed:$2a$10$XsM3Bx3ZaEWwGlMgJLzpTe4FsPp8cRt6hJMsw2m1i6bX16.SpOoA2, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$E9hHx4pk.nzlRrev8rv/ke, hashed:$2a$10$E9hHx4pk.nzlRrev8rv/keZ8tl2if9JxYaSyVy8JUrsKCl3t6bBo6, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$UOU.K7sz28ZLxVV3LeHwne, hashed:$2a$10$UOU.K7sz28ZLxVV3LeHwneuAsstMZCl9D..e/eewpMb0Ox5mCh2dm, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$d3Nn.vxuJf9CztpyIAz0de, hashed:$2a$10$d3Nn.vxuJf9CztpyIAz0dezyf38AxV6nO2PRrYIBAVRBSdIg9/TLK, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$0AdBZROsoBzjeZhDGrURtO, hashed:$2a$10$0AdBZROsoBzjeZhDGrURtOaGEJ7gSSnrUvL2pU0qexk1Fmp0xZVAC, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$tAn04u28wRlCrks2eloJoe, hashed:$2a$10$tAn04u28wRlCrks2eloJoelkqc169mIPP9XrJc9x8uUz1IswyXLoG, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$QH5F8nIjhWGJS9FoY30oVe, hashed:$2a$10$QH5F8nIjhWGJS9FoY30oVemYXx2fYtA0JOio8lVACKwofLvlAopDW, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$pEaXloJUtgsUCv4sU3BB8u, hashed:$2a$10$pEaXloJUtgsUCv4sU3BB8uyg4hmAond6Mn8bXdTumOoeIHg1Ui5SO, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$LfcIFXatF9EX9BAkGgrLyO, hashed:$2a$10$LfcIFXatF9EX9BAkGgrLyOOCxtdBhgdr3xe6pr3SEPKcqLu5/zbgy, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$80r9moKyZBnAd5gvgC/rk., hashed:$2a$10$80r9moKyZBnAd5gvgC/rk.H/4XDx0opCCeOyieHNtgnvNTUTgcBki, 校验是否一致:true, 故意写错,校验是否一致:false
slat: $2a$10$iGqlhBp0ua9oufMTGA/4Le, hashed:$2a$10$iGqlhBp0ua9oufMTGA/4LeAgzgXXjxUyGuh9IeOQJl7gAp27lbSRS, 校验是否一致:true, 故意写错,校验是否一致:false

参考地址:BCrypt加密工具的使用 - /***/ - 博客园

BCrypt和MD5密码加密介绍及实现(赶快收藏起来)_庆登登登的博客-CSDN博客_bcrypt和md5

方式2

其实和方式1是一样的。只是maven里的坐标不一样,里面的内容是一致的。

 

		<dependency>
		   <groupId>org.mindrot</groupId>
		   <artifactId>jbcrypt</artifactId>
		   <version>0.4</version>
		</dependency>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值