密码复杂度正则校验 数字和字母不能连续/重复3位及以上
时间: 2024-09-30 17:09:09 浏览: 65
密码复杂度正则校验是一种常见的安全性规则,用于确保用户设置的密码满足一定的复杂性和不可预测性。这种校验通常包括以下几个方面:
1. **数字和字母不能连续或重复**: 规则规定密码中不应有连续的三位或更多的数字或字母,例如"123"、"abc"这样的模式被视为不符合安全要求。
2. **组合要求**: 包含大小写字母、数字和特殊字符的混合,目的是增加破解难度。比如,不允许密码只由大写字母、小写字母、或者纯数字组成。
3. **长度限制**: 短而简单的密码容易被猜解,因此一般会设定最小长度,如8-16位以上。
4. **禁止常用词、序列或个人信息**: 避免使用易猜测的信息,如生日、电话号码、姓名等。
当设计密码验证正则表达式时,可以参考上述原则编写匹配模式,例如使用正则表达式检查连续或重复字符。这里举一个简化版的例子(Python示例):
```python
import re
def is_complex_password(password):
pattern = r"(?<![0-9])[0-9]{3}(?![0-9])|(?<=[a-zA-Z])[a-zA-Z]{3}(?![a-zA-Z])"
if re.search(pattern, password):
return False
# 还可以添加其他复杂性测试
return True
# 测试密码
print(is_complex_password("Password123")) # 输出False
print(is_complex_password("Pa$$w0rd!")) # 输出True
```
阅读全文