王小云md5破解方法 md5逆向破解教程步骤

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();}扥时候 。再使用相同的方法验证密码是否一致
登录的时候 。再使用相同的方法验证密码是否一致
【王小云md5破解方法 md5逆向破解教程步骤】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())){//登陆成功 。生成tokenTODOreturnnull;}else{returnjsonData.buildResult(BizCodeEnum.ACCOUNT_PWD_ERROR);}

    推荐阅读