王小云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));
// 密码 + 盐处理
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);
}
- 随机文章
- 热门文章
- 热评文章
- 乌龟影院 v1.1.2.7去广告清爽版
- 【2022最新版】乐天产品注册和CSV批量产品编辑5分钟抓拍!
- 安卓优兔阅读v1.0.1绿化版
- 抖音直播怎么赚钱 抖音直播赚钱吗
- 4个免费无版权的素材哪里有,4个网站介绍给大家
- 抖音直播带货怎么做,抖音直播带货有哪些套路
- 抖音短视频推广效果怎么样,抖音短视频推广效果如何
- wish退款率计算公式是什么?退款率高有什么原因?
扫描二维码推送至手机访问。
版权声明:本文中部分文字、图片、音频、视频来源于互联网及公开渠道,仅供学习参考,版权归原创者所有! 如侵犯到您的权益,请及时通知我们!我们将在第一时间内删除。


赣公网安备36070302361030号