Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java工具集-密码检测工具

Java工具集-密码检测工具

作者头像
cwl_java
发布于 2020-06-10 02:10:12
发布于 2020-06-10 02:10:12
1.3K00
代码可运行
举报
文章被收录于专栏:cwl_Javacwl_Java
运行总次数:0
代码可运行
代码示例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
安全密码正则
今天分享一个密码的正则,密码必须包含大、小写字母、数字、特殊符号至少三种,且长度为8-20
阿超
2022/08/16
7080
最强密码规则效验(java后台版和javascript版)
最强密码规则效验:(java后台版和javascript版) 需求如下: (一)口令至少由8位及以上大小写字母、数字及特殊字符等混合、随机组成(至少包括数字、小写字母、大写字母和特殊符号中的三种)。 同时严禁在口令中包含以下情况:
星辰sea
2023/08/17
1.5K0
java 常用工具类
package org.fh.util; import java.util.Random; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 说明:常用工具 * 作者:FH Admin * from:fhadmin.cn */ public class Tools { /** * 随机生成六位数验证码 * @return */ public static int getRandomNu
FHAdmin
2021/09/22
4220
Java 正则表达式:语法讲解和常用表达式汇总
正则表达式定义了字符串的模式; 正则表达式可以用来搜索、编辑或处理文本; 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
全栈程序员站长
2022/09/09
4.5K0
Java 正则表达式:语法讲解和常用表达式汇总
java邮箱与手机号的正则工具类
package net.xdclass.util; import java.util.regex.Matcher; import java.util.regex.Pattern; public c
高大北
2022/09/08
5760
java 常用工具类 (值得收藏)
package org.fh.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStr
FHAdmin
2022/03/14
3430
密码校验规则的一些思考
虽然现在第三方登录微信、QQ、GitHub等大行其道,但是账密登录依然是一个系统最核心、最主要的功能之一。登录功能的好坏直接影响到系统的安全,而登录的流程、错误提示有直接关系到用户使用的体验效果。
BUG弄潮儿
2020/06/12
1.5K0
java之手机号校验工具分享
校验手机号很常见,当有的工具不满足你的需求时,就需要自己去写了,其实写每篇文章都是有原因的,由于使用别人封装的工具校验手机号是否合法不满足自己的需求,原来的手机号只会校验手机号牌的位数是否是11位,其它的就不校验了,所以就有了这篇文章的输出。
码农王同学
2020/02/10
1.8K0
第三阶段-Java常见对象:【第七章 正则表达式】
(一) 正则表达式 (一) 正则表达式概述 (1) 简单概述 就是符合一定规则的字符串 (2) 常见规则 A:字符 x 字符 x。举例:'a'表示字符a \ 反斜线字符。 \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') B:字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到z 或 A到Z,两头的字母包括在内(范围) [0-9]
BWH_Steven
2019/08/09
5070
一个通用的Java正则匹配工具
一个通用且常用的Java正则匹配工具,用以检查邮箱名、电话号码、用户密>码、邮政编码等合法性。 验证Email @param email email地址,格式:zhang@gmail.com,zhang@xxx.com.cn,xxx代表邮件服务商 @return 验证成功返回true,验证失败返回false 验证身份证号码 @param idCard 居民身份证号码15位或18位,最后一位可能是数字或字母 @return 验证成功返回true,验证失败返回false 验证手机号码 *@param mobil
用户1263308
2018/02/01
2.1K0
Java工具集-校验手机号码与网址
代码示例 import org.apache.commons.lang3.StringUtils; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @program: simple_tools * @description: 校验手机号码与网址 * @author: Mr.chen * @create: 2020-05-18 11:48 **/ public class RegExpUtil {
cwl_java
2020/06/10
7020
android 校验用户名密码手机邮箱身份证邮编等
package com.farmlink.most.util; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; import android.net.ParseException; import android.text.TextUtils; /** * 参数校验 */ public class V
再见孙悟空_
2023/02/10
5020
正则表达式--密码复杂度验证--必须包含大写、小写、数字、特殊字符中的至少三项
密码复杂度要求: 大写字母、小写字母、数字、特殊字符,四项中至少包含三项。 import org.junit.Test; import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @Author TeacherFu * @Version 1.0 */ public class PasswordTest {
红目香薰
2022/11/29
2.7K0
【愚公系列】Java教学课程 042-正则表达式
正则表达式(Regular Expression,简称Regex或RegExp)是一个用来描述、匹配、搜索某个文本或字符串的规则或模式。它通常由一些特定的字符和操作符组成,可以用来匹配和过滤各种文本信息。正则表达式可以用于实现文本的查找、替换、过滤、验证等操作,是编程和数据处理领域中非常有用的工具。
愚公搬代码
2025/06/01
770
一个通用的Java正则匹配工具
一个通用且常用的Java正则匹配工具,用以检查邮箱名、电话号码、用户密码、邮政编码等合法性。
大师级码师
2021/09/19
1.3K0
Java正则表达式验证格式 手机、邮箱、字符串
手机号码验证 public static boolean isMobileNO(String mobiles) { try { Pattern p = Pattern .compile("(13[0-9]|14[57]|15[012356789]|18[02356789])\\d{8}"); Matcher m = p.matcher(mobiles); return m
大师级码师
2021/10/29
2.5K0
Android开发笔记(四)字符串格式化
博主原来是搞C的,C里面有sprintf来格式化字符串,后来转到java变傻了,拼接String只会用n个“+”,要么就是用StringBuilder的append方法,但要是遇上把数字格式化的情况(比如左补0等等),就只能傻乎乎的if else判断该补几个0。 后来终于有一天,博主发现原来java也有格式化的函数(jdk1.5就提供了),就是String.format(String format, Object... args),用法跟C差不多,只是转换符有些区别。这下可算是从苦逼的if else中解脱出来了,下面就记录几个常用的格式转换符: %s   : 字符串,如"hello" %c   : 字符,如'a' %b   : 布尔类型,如true或者false %d   : 十进制整型数,如119 %x   : 十六进制整型数,如f0 %f   : 十进制浮点数,java在这里不像c有%f/%lf/%ld等区分浮点与双精度,java的float类型和double类型都用%f %0nd : n是十进制整数,表示这里占着n位数字,位数如不足n则左补0
aqi00
2019/01/18
1.2K0
数据分类分级 数据识别-实现部分敏感数据识别
通过内置数据识别规则或用户数据识别规则,对其结构化表进行整体扫描,自动识别敏感数据,进行分级
鲲志说
2025/04/07
1540
数据分类分级 数据识别-实现部分敏感数据识别
密码安全:如何识别强弱密码,并打造铁壁防线!
这里先给大家推荐一篇实用的好文章:《如何在接口设计中加上性能监控,让接口时刻“感知”自己的健康状态!》 来自作者:bug菌
喵手
2024/11/16
4140
密码安全:如何识别强弱密码,并打造铁壁防线!
【Java】正则表达式
文章目录 参考文档 调用 regex String方法也行 匹配单个字符 匹配多个字符 类型比较 贪婪 勉强 占有 组 逻辑或 边界运算符 电话号 匹配城市 邮箱 端口号 参考文档 JavaSE Doc 调用 regex package regex; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @Author bennyrhys * @Date 2/7/21 2:24 PM */ public clas
瑞新
2021/12/06
6550
【Java】正则表达式
推荐阅读
相关推荐
安全密码正则
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验