正则表达式(Regular Expression)-云社区-华为云

以下是几种不同强度等级的密码验证正则表达式,适用于常见安全需求。你可以根据具体场景选择使用:


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