2023年7月31日发(作者:)

MD5加密案例1、未加盐值每次加密的结果⼀样彩虹表可以暴⼒破解/*** 1、MD5抗修改性,彩虹表暴⼒破解md5,所以md5不能直接进⾏加密存储* 2、盐值加密 MD5Crypt*/String s = 5Hex("123456");n(s);2、⼈⼯加盐值每次加密同样的盐值得到的结果⼀样盐值:每个⼈吃肯德基的味道是⼀样的,但是如果随机加上点盐味道就会每个⼈都不⼀样了将盐值作为⼀个字段存在数据库中,因为不可逆,⽤户可再次使⽤明⽂加盐值后和数据库的盐值做对⽐,来判断密码是否正确String md5Crypt = 5Crypt("123456".getBytes(),"100");n(md5Crypt);3、⾃动加盐值每次加密后的结果都不⼀样,⾃动给加上了盐值,⽆需⼈⼯再加盐值这样如果100个⽤户的密码都是123456,但是存储到数据库加密后的密码也都不会⼀样,但是每⼀个数据库的密码都可以破解出同样的明⽂密码BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();String encode = ("123456");n(encode);//登录时⽤match⽅法判断明⽂密码和之前⽣成的盐值密码是否相同boolean matches = s("123456", "$2a$10$mV2BU2ZVd1hkT/RKFadazeaEVrVnqGtjdOKnJUmqmZs2l22QGPQOK");n(matches);

2023年7月31日发(作者:)

MD5加密案例1、未加盐值每次加密的结果⼀样彩虹表可以暴⼒破解/*** 1、MD5抗修改性,彩虹表暴⼒破解md5,所以md5不能直接进⾏加密存储* 2、盐值加密 MD5Crypt*/String s = 5Hex("123456");n(s);2、⼈⼯加盐值每次加密同样的盐值得到的结果⼀样盐值:每个⼈吃肯德基的味道是⼀样的,但是如果随机加上点盐味道就会每个⼈都不⼀样了将盐值作为⼀个字段存在数据库中,因为不可逆,⽤户可再次使⽤明⽂加盐值后和数据库的盐值做对⽐,来判断密码是否正确String md5Crypt = 5Crypt("123456".getBytes(),"100");n(md5Crypt);3、⾃动加盐值每次加密后的结果都不⼀样,⾃动给加上了盐值,⽆需⼈⼯再加盐值这样如果100个⽤户的密码都是123456,但是存储到数据库加密后的密码也都不会⼀样,但是每⼀个数据库的密码都可以破解出同样的明⽂密码BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();String encode = ("123456");n(encode);//登录时⽤match⽅法判断明⽂密码和之前⽣成的盐值密码是否相同boolean matches = s("123456", "$2a$10$mV2BU2ZVd1hkT/RKFadazeaEVrVnqGtjdOKnJUmqmZs2l22QGPQOK");n(matches);