一些常用的密码格式校验正则表达式实用指南
平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“一些常用的密码格式校验正则表达式”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
前言
在这个场景下,业务需调整各端密码的安全正则,但密码策略现在是各个业务系统用不同语言维护,不便于统一管理和升级。采用正则表达式维护密码是比较好的方法。下面列举一些常用的密码格式的正则表达式。
规则总览
| 密码复杂度 | 口令复杂度要求 |
| A类 | 长度6位及以上 |
| B类 | 长度6位及以上,且不能出现3位及以上的连续数字或字母; |
| C类 | 长度6位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型; |
| D类 | 实际处理时,长度6位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型,且不能出现3位及以上的连续数字或字母; |
| E类 | 长度8位及以上 |
| F类 | 长度8位及以上,且不能出现3位及以上的连续数字或字母; |
| G类 | 长度8位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型; |
| H类 | 落到代码里,长度8位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型,且不能出现3位及以上的连续数字或字母; |
| I类 | 长度8位及以上,至少包含大、小写字母,数字,特殊字符中的三种类型; |
| J类 | 结合项目来看,长度8位及以上,至少包含大、小写字母,数字,特殊字符中的三种类型,且不能出现3位及以上的连续数字或字母; |
| K类 | 长度8位及以上,至少包含大、小写字母,数字,特殊字符四种类型; |
| L类 | 实际处理时,长度8位及以上,至少包含大、小写字母,数字,特殊字符四种类型,且不能出现3位及以上的连续数字或字母; |
密码规则
A类:长度6位及以上
^.{6,}$
B类:长度6位及以上,且不能出现3位及以上的连续数字或字母;
^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])[a-z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[_W])[a-z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])[a-z]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[_W])[A-Z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])[A-Z]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])(?=.*[_W])[0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])[0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[_W])[_W]{6,}$
C类:长度6位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型;
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{6,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{6,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{6,}$|^(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{6,}$|^(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{6,}$|^(?=.*[a-z])(?=.*[0-9])[a-z0-9]{6,}$|^(?=.*[a-z])(?=.*[_W])[a-z_W]{6,}$|^(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{6,}$|^(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{6,}$|^(?=.*[A-Z])(?=.*[_W])[A-Z_W]{6,}$|^(?=.*[0-9])(?=.*[_W])[0-9_W]{6,}$
D类:长度6位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型,且不能出现3位及以上的连续数字或字母;
^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])[a-z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[_W])[a-z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[_W])[A-Z_W]{6,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])(?=.*[_W])[0-9_W]{6,}$
E类:长度8位及以上
^.{8,}$
F类:长度8位及以上,且不能出现3位及以上的连续数字或字母;
^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])[a-z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[_W])[a-z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])[a-z]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[_W])[A-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])[A-Z]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])(?=.*[_W])[0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])[0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[_W])[_W]{8,}$
G类:长度8位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型;
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{8,}$|^(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?=.*[a-z])(?=.*[0-9])[a-z0-9]{8,}$|^(?=.*[a-z])(?=.*[_W])[a-z_W]{8,}$|^(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$|^(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{8,}$|^(?=.*[A-Z])(?=.*[_W])[A-Z_W]{8,}$|^(?=.*[0-9])(?=.*[_W])[0-9_W]{8,}$
H类:长度8位及以上,至少包含大、小写字母,数字,特殊字符中的两种类型,且不能出现3位及以上的连续数字或字母
^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])[a-z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[_W])[a-z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[_W])[A-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[0-9])(?=.*[_W])[0-9_W]{8,}$
I类:长度8位及以上,至少包含大、小写字母,数字,特殊字符中的三种类型
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$
J类:长度8位及以上,至少包含大、小写字母,数字,特殊字符中的三种类型,且不能出现3位及以上的连续数字或字母
^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[_W])[a-zA-Z_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[0-9])(?=.*[_W])[a-z0-9_W]{8,}$|^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[A-Z0-9_W]{8,}$
K类:长度8位及以上,至少包含大、小写字母,数字,特殊字符四种类型
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$
L类:长度8位及以上,至少包含大、小写字母,数字,特殊字符四种类型,且不能出现3位及以上的连续数字或字母
^(?!.*(?:[0-9]{3}|[a-zA-Z]{3}|[a-z]{3}|[A-Z]{3}))(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_W])[a-zA-Z0-9_W]{8,}$
其他类型,能够参考其他博客地址,比如 正则表达式 - 密码格式验证大全
理解这一步时,如需大小写字母,数字,特殊字符校验的其他规则,能够在下方留言。我有工具能够生成。
总结
从实现思路看,总的来说,正则表达式校验密码适合结合实际项目边做边理解。先抓住核心思路,再逐步补上细节和边界处理,最后效果会更稳定,也更容易复用。
相关资讯
-
10.16
C#正则表达式详细图文教程实用指南
-
10.16
正则表达式密码格式验证做法大全使用教程与实战指南实用指南
-
10.16
grep文本搜索与正则表达式完整代码示例实用指南
-
10.16
MySQL数据库通配符、正则表达式示例完整指南
-
10.16
一些常用的密码格式校验正则表达式实用指南
-
10.15
全局搜索正则表达式grep命令使用做法实用指南
游戏推荐
推荐专题
热门阅读
-
- grep文本搜索与正则表达式完整代码示例实用指南
- 10.16
-
- MySQL数据库通配符、正则表达式示例完整指南
- 10.16
推荐下载
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏