前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java工具集-密码检测工具

Java工具集-密码检测工具

作者头像
cwl_java
发布2020-06-10 10:10:12
1.1K0
发布2020-06-10 10:10:12
举报
文章被收录于专栏:cwl_Javacwl_Java
代码示例
代码语言:javascript
复制
import java.util.regex.Pattern;

/**
 * @program: simple_tools
 * @description: 密码检测工具类
 * @author: Mr.chen
 * @create: 2020-05-18 11:26
 **/
public class PasswordUtils {

    /**
     * 判断是否为纯数字简单密码
     * @param pwd
     * @return 如 111111 123456 654321返回true
     */
    public static boolean isSimplePwd(String pwd) {
        if (null == pwd || "".equals(pwd.trim())) {
            return false;
        }
        if (!Pattern.compile("[0-9]*").matcher(pwd).matches()) {
            return false;
        }

        boolean flag1 = true;
        boolean flag2 = true;
        boolean flag3 = true;
        char[] chars = pwd.toCharArray();
        int iterations = chars.length - 1;
        for (int i = 0; i < iterations; i++) {
            int num1 = Integer.parseInt(chars[i] + "");
            int num2 = Integer.parseInt(chars[i + 1] + "");

            if (num1 != num2 - 1) {
                flag1 = false;
            }
            if (num1 != num2 + 1) {
                flag2 = false;
            }
            if (num1 != num2) {
                flag3 = false;
            }
            if (!(flag1 || flag2 || flag3)) {
                break;
            }
        }
        return (flag1 || flag2 || flag3);
    }

    /**
     *  检查密码合格性
     * @param pwd
     * @return 密码长度需8-32位且至少含数字、字母、字符中的两种 true
     */
    public static boolean pwdIsOk(String pwd) {
        if (null == pwd || "".equals(pwd.trim())) {
            return false;
        }
        String pattern = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{8,32}$";
        return Pattern.compile(pattern).matcher(pwd).matches();
    }

    public static String checkPassword(String pwd) {
        String regexZ = "\\d*";
        String regexS = "[a-zA-Z]+";
        String regexT = "\\W+$";
        String regexZT = "\\D*";
        String regexST = "[\\d\\W]*";
        String regexZS = "\\w*";
        String regexZST = "[\\w\\W]*";

        if (pwd.matches(regexZ)) {
            return "弱";
        }
        if (pwd.matches(regexS)) {
            return "弱";
        }
        if (pwd.matches(regexT)) {
            return "弱";
        }
        if (pwd.matches(regexZT)) {
            return "中";
        }
        if (pwd.matches(regexST)) {
            return "中";
        }
        if (pwd.matches(regexZS)) {
            return "中";
        }
        if (pwd.matches(regexZST)) {
            return "强";
        }
        return pwd;

    }

    public static void main(String[] args) {
        System.out.println(pwdIsOk("??..........13a"));
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码示例
相关产品与服务
检测工具
域名服务检测工具(Detection Tools)提供了全面的智能化域名诊断,包括Whois、DNS生效等特性检测,同时提供SSL证书相关特性检测,保障您的域名和网站健康。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档