MD5 信息摘要算法:String password = DigesUtils.md5Hex("password");
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易
3、抗修改性:对原数据进行任何改动,所得到的MD5值都有很大的区别
4、强抗碰撞:想找到两个不同的数据,很难有相同的MD5值
6、不可逆
加盐:String password = Md5Crypt.md5Crypt("password","salt");
1、通过生成随机数与MD5生成字符串进行组合
2、数据库同时存储MD5值与salt值,验证正确性时使用salt进行MD5即可
springboot带的密码加密方法:BCryptPasswordEncoder类
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
//加密,每次得到的密码是不一样的
String encode = passwordEncoder.encode("password");
//对比密码
passwordEncoder.matches("password",encode);