md5加密工具怎麼用?Md5優點:快速計算m,具有單向性 one-way,不可由散列值推出原消息,但是如果密碼過于簡單就會有一定概率被暴力破解,我來為大家科普一下關于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));// 密碼 + 鹽處理String cryptPwd = Md5Crypt.md5Crypt(registerRequest.getPwd().getBytes(), userDO.getSecret());// 保存加密後的密碼userDO.setPwd(cryptPwd);
public static String getStringNumRandom(int length) { Random random = new Random(); //生成随機數字和字母, StringBuilder saltString = new StringBuilder(length); for (int i = 1; i <= length; ++i) { saltString.append(ALL_CHAR_NUM.charAt(random.nextInt(ALL_CHAR_NUM.length()))); } return saltString.toString();}扥時候,再使用相同的方法驗證密碼是否一緻
登錄的時候,再使用相同的方法驗證密碼是否一緻
List<UserDO> userDOList = userMapper.selectList(new QueryWrapper<UserDO>().eq("mail", loginRequest.getMail()));if (userDOList != null && userDOList.size() == 1) { //已經注冊 UserDO userDO = userDOList.get(0); String cryptPwd = Md5Crypt.md5Crypt(loginRequest.getPwd().getBytes(), userDO.getSecret()); if (cryptPwd.equals(userDO.getPwd())) { //登陸成功,生成token TODO return null; } else { return JsonData.buildResult(BizCodeEnum.ACCOUNT_PWD_ERROR); }
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!