文章插图
文章插图
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();}扥时候,再使用相同的方法验证密码是否一致
登录的时候,再使用相同的方法验证密码是否一致【MD5破解器 md5破解工具】
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 TODOreturn null;} else {return JsonData.buildResult(BizCodeEnum.ACCOUNT_PWD_ERROR);}
- flv转换器mp4格式 mp4怎么转换成flv格式
- 用手机把dat转换mp4 dat转mp4转换器app
- qq自动聊天机器人软件 自动聊天机器人软件怎么制作
- 视频播放器排行榜前十名软件 视频播放器排行榜前十名手机
- PC万能播放器 pc端最好用的播放器
- 手机怎么解锁rar rar解压密码怎么破解手机
- 鼠标连点软件哪个好 最好用的鼠标连点器
- 视频编辑器哪个好用 手机视频剪辑软件哪个好用
- 手机图片修改器 手机图片修改软件
- 地图下载器哪个好用 下载哪种地图好