当前位置: 代码迷 >> 综合 >> 密码的加密存储
  详细解决方案

密码的加密存储

热度:63   发布时间:2024-02-02 01:46:16.0

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);}}

 

 

 

 

  相关解决方案