MD5:是一种信息摘要算法
压缩性:任意长度的数据算出的MD5值长度都是一样的
容易计算:从原数据计算出MD5的值很容易
抗修改性:对原数据进行任何改动哪怕是一个字节,所得到的MD5值都有很大区别
强抗碰撞:想找到两个不同的数据有相同的MD5值是非常困难的
不可逆:无法根据MD5值推算出原来的数据
盐值加密:MD5升级版,加一个随机值,更安全
@SpringBootTest
class GreymallMemberApplicationTests {@Testvoid contextLoads() {//123456的md5->e10adc3949ba59abbe56e057f20f883e,抗修改性//可暴力破解-》彩虹表
// String s = DigestUtils.md5Hex("123456");
// System.out.println(s);//MD5不能直接进行密码的加密存储
// "123456" + System.currentTimeMillis();//盐值加密:随机值 加盐:$1$+8位字符//对密码的验证:123456进行盐值(去数据库查)加密
// String s1 = Md5Crypt.md5Crypt("123456".getBytes());
// System.out.println(s1);BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();String encode = bCryptPasswordEncoder.encode("123456");boolean matches = bCryptPasswordEncoder.matches("123456", "$2a$10$Wab7zLKVKDqa0DRdv7D8leP3NXOGtfWzA133zEzvfW2Jb3N31eFku");System.out.println(encode + "=>" + matches);}}