这里分享一个Spring Security提供的一个对数据加密的对象(可用于用户登录)
BCryptPasswordEncoder 跟MD5区别MD5:只要是相同的salt(盐)和原密码,加密后产生的密串都是一致的(非常容易出问题)
BCryptPasswordEncoder:相同的明文,每次生成不同的加密字符串都不一样
@Test
public void testEncipher() {
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
//密码加密 底层封装盐值 $2a$10$rQDn0a0bdzhv.yAO9m4uDuTDgVIAPKi1rsOBnNV0Fswo3KXwF.7mu
String encode = bCryptPasswordEncoder.encode("123456");
System.err.println("加密encode:" + encode);
//密码解密 盐值自动匹配
boolean matches = bCryptPasswordEncoder.matches("123456", "$2a$10$IjG.dUKKNExF03cda4sjZ.wouFW1BrSxXEbnOSp7M3mxMA2y34vDm");
System.err.println(encode + "==>" + matches);
}
执行结果