Md5优点:快速计算m。具有单向性 one-way。不可由散列值推出原消息。但是如果密码过于简单就会有一定概率被暴力破解。
密码存储常用方式:
1、双重MD5
2、MD5+加盐
3、双重MD5+加盐
我一般使用2。只要数据库没有被攻破。密码被暴力破解的概率是微乎其微的。
pom文件:
<!--用于加密--> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </dependency
//userDO.setPwd(registerRequest.getPwd()); //secret保存盐 userDO.setSecret("$1$"+CommonUtil.getStringNumRandom(8)); //密码+盐处理 StringcryptPwd=Md5Crypt.md5Crypt(registerRequest.getPwd().getBytes(),userDO.getSecret()); //保存加密后的密码 userDO.setPwd(cryptPwd);
publicstaticStringgetStringNumRandom(intlength){ Randomrandom=newRandom(); //生成随机数字和字母, StringBuildersaltString=newStringBuilder(length); for(inti=1;i<=length;++i){ saltString.append(ALL_CHAR_NUM.charAt(random.nextInt(ALL_CHAR_NUM.length()))); } returnsaltString.toString(); }扥时候。再使用相同的方法验证密码是否一致
登录的时候。再使用相同的方法验证密码是否一致
List<UserDO>userDOList=userMapper.selectList(newQueryWrapper<UserDO>().eq("mail",loginRequest.getMail())); if(userDOList!=null&&userDOList.size()==1){ //已经注册 UserDOuserDO=userDOList.get(0); StringcryptPwd=Md5Crypt.md5Crypt(loginRequest.getPwd().getBytes(),userDO.getSecret()); if(cryptPwd.equals(userDO.getPwd())){ //登陆成功。生成tokenTODO returnnull; }else{ returnjsonData.buildResult(BizCodeEnum.ACCOUNT_PWD_ERROR); }
以上就是由优质生活领域创作者 生活常识网 整理编辑的,如果觉得有帮助欢迎收藏转发~
本文标题:王小云md5破解方法(著名天才女院士王小云)
本文地址:http://www.shenzhoubaby.com/15312.html,转载请说明来源于:生活常识网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系@qq.com进行处理。分享目的仅供大家学习与参考,不代表本站立场。
本文地址:http://www.shenzhoubaby.com/15312.html,转载请说明来源于:生活常识网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系@qq.com进行处理。分享目的仅供大家学习与参考,不代表本站立场。