判断密码强度的正则表达式

以下是几种不同强度等级的密码验证正则表达式,适用于常见安全需求。你可以根据具体场景选择使用:
1. 弱密码(仅长度要求)
要求:至少 6 位任意字符
^.{6,}$2. 中等密码
要求:至少 8 位,包含字母和数字
^(?=.*[A-Za-z])(?=.*\d).{8,}$3. 强密码(推荐常见标准)
要求:至少 8 位,包含大写字母、小写字母、数字和特殊字符(如 !@#$%^&*)
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]).{8,}$💡 说明:
(?=.*[a-z]):至少一个小写字母(?=.*[A-Z]):至少一个大写字母(?=.*\d):至少一个数字(?=.*[特殊字符]):至少一个特殊字符.{8,}:总长度 ≥8
你可以根据需要调整特殊字符集合,比如更宽松地使用 [^\w](非单词字符)或更严格地自定义。
4. 超强密码
要求:至少 12 位,必须包含大小写字母、数字、特殊字符,且不能有连续重复字符(如 "aaa")
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])(?!.*(.)\1{2}).{12,}$使用建议(Python 示例):
import re
def is_strong_password(password):
pattern = r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};\'":\\|,.<>\/?]).{8,}$'
return bool(re.match(pattern, password))
print(is_strong_password("MyPass123!")) # True
print(is_strong_password("weak")) # False-END
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Summer
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果