高安全性密码的正则表达式验证
2019-10-28 06:23:45来源:博客园 阅读 ()
高安全性密码的正则表达式验证
在许多情况下,要求用户的必须符合规则:包含数字,小写英文字母,大写英文字母,特殊字符~!@#$%^&之一,且长度必须>=6
有许多方法,其中一个是正则表达式.
在java中使用正则表达式,并不是很方便,最后还是使用:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
具体代码如下(此处没有检验长度,只是检验是否包含特定字符):
/** * @author lzf * @created on 2019年10月24日 下午2:48:38 * @功能 判断密码是否都包含了 数字,小写英文字母,大写英文字母,特别符号(~!@#$%^&*_) * @param passwd 明文密码字符串 * @return 如果都包含,则返回true,否则返回false.. */ private boolean isPassWordValid(String passwd){ String regExpS="(?<one>[0-9])|(?<two>[a-z])|(?<four>[A-Z])|(?<three>[~!@#$%^&*_])"; Pattern r = Pattern.compile(regExpS); Matcher isMatch = r.matcher(passwd); boolean isFindNumberOk=false; boolean isFindSmallAlphabetOk=false; boolean isFindBigAlphabetOk=false; boolean isFindSpecialSymblOk=false; while (isMatch.find()){ String one=isMatch.group("one"); if (one!=null && isFindNumberOk==false){ isFindNumberOk=true; } String two=isMatch.group("two"); if (two!=null && isFindSmallAlphabetOk==false){ isFindSmallAlphabetOk=true; } String three=isMatch.group("three"); if (three!=null && isFindSpecialSymblOk==false){ isFindSpecialSymblOk=true; } String four=isMatch.group("four"); if (four!=null && isFindBigAlphabetOk==false){ isFindBigAlphabetOk=true; } //System.out.println(one+"--"+two+"----"+three+"----"+four); } if ( isFindNumberOk && isFindSmallAlphabetOk && isFindBigAlphabetOk && isFindSpecialSymblOk){ return true; //System.out.println("在字符串["+srcStr+"]中发现了数字、小写字母、大写字母和特定符号"); } else{ return false; } }
上面的代码,可以满足结果,但不是很高效,甚至特定情况下,不如逐个分析字符串来得高效。不过用于验证密码输入是否满足规则的业务通常对性能要求不高,所以也可以将就!
原文链接:https://www.cnblogs.com/lzfhope/p/11740594.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:本月16日SpringBoot2.2发布,有哪些变化先知晓
下一篇:包装类
- Java跨平台原理(字节码文件、虚拟机) 以及Java安全性 2020-06-07
- 从0到1打造正则表达式执行引擎 2020-05-04
- JAVA的概述 2020-04-06
- SpringBoot Shiro 配置自定义密码加密器 2020-03-24
- 我去,同事居然用明文存储密码!!! 2020-03-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash