md5破解方法(md5逆向破解技巧)

   日期:2022-02-16     文章发布:文章发布    网络转载:生活号    
核心提示:Md5优点:快速计算m,具有单向性one-way,不可由散列值推出原消息,但是如果密码过于简单就会有一定概率被暴力破解。 密码存储常用方式: 1、双重MD5 2、MD5+加盐 3、双重MD5+加盐 我一般使用2,只要数据库没有被攻破,密码被暴力破解的概率是微乎其微的。 pom文件: common...
移动站源标题:http://mip.pi1688.com/news/item-159380.html

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);
    }
免责声明:本网部分文章和信息来源于互联网,本网转载出于传递更多信息和学习之目的,并不意味着赞同其观点或证实其内容的真实性,如有侵权请通知我们删除!(留言删除
 
 
更多>同类行业

同类新闻
最新资讯
最新发布
最受欢迎
网站首页  |  黄页  |  联系方式  |  生活号  |  版权隐私  |  网站地图  |  API推送  |  网站留言  |  RSS订阅  |  违规举报