(4)检查并判断密码字符串的安全程度
时间: 2023-07-15 18:11:36 浏览: 102
密码的安全程度检测
检查并判断密码字符串的安全程度通常可以通过以下方式:
1. 长度:密码长度越长,破解难度越大。建议密码长度至少为8个字符。
2. 复杂度:密码中包含字符种类越多,破解难度越大。建议密码中包含大小写字母、数字和特殊字符。
3. 可预测性:密码不应该是易于猜测或者与个人信息相关的,例如生日、电话号码等。
4. 是否重复使用:相同的密码用于不同的账户会增加被攻击的风险。
基于以上几点,我们可以编写一个函数来判断密码的安全程度,示例如下:
```python
import re
def check_password_strength(password):
length_error = len(password) < 8
digit_error = re.search(r"\d", password) is None
uppercase_error = re.search(r"[A-Z]", password) is None
lowercase_error = re.search(r"[a-z]", password) is None
symbol_error = re.search(r"[ !#$%&'()*+,-./[\\\]^_`{|}~"+r'"]', password) is None
predictability_error = re.search(r"\d{4}|19\d\d|20\d\d", password) is not None or \
re.search(r"\b([A-Za-z]+)\1+\b", password) is not None
error_list = [length_error, digit_error, uppercase_error, lowercase_error, symbol_error, predictability_error]
strength_list = ['弱', '中', '强', '很强']
strength = min(sum(error_list), 5)
return strength_list[strength]
# 测试
print(check_password_strength("password123")) # 弱
print(check_password_strength("P@ssw0rd")) # 中
print(check_password_strength("MyPassword2021")) # 强
print(check_password_strength("l3tm3in")) # 很强
```
在该函数中,我们首先检查密码的长度、是否包含数字、大写字母、小写字母、特殊字符等,然后检查密码是否易于预测,最后根据错误的数量确定密码的安全程度。根据错误数量,我们定义了四个安全程度:弱、中、强、很强。
阅读全文