检测密码安全强度。参考提示:密码如果小于8位,则输出弱;如果都包含大写,小写,数字,特殊字符,则输出强;如果有数字,并且大小写至少有一种则输出中;否则输出弱。需要用到字符串的匹配功能(import r
时间: 2024-10-13 21:15:03 浏览: 4
检测密码安全强度通常涉及对输入字符串进行一系列规则检查。这里可以使用Python编写一个简单的函数,结合正则表达式库`re`来实现这个逻辑:
```python
import re
def check_password_strength(password):
# 定义密码安全级别的条件
rules = {
'weak': lambda p: len(p) < 8,
'medium': lambda p: (len(p) >= 8 and re.search(r'[A-Z]', p) and re.search(r'[a-z]', p) and re.search(r'\d', p)),
'strong': lambda p: len(p) >= 8 and bool(re.search(r'[A-Za-z]', p)) and bool(re.search(r'\d', p)) and bool(re.search(r'[!@#$%^&*(),.?":{}|<>]', p))
}
for level, condition in rules.items():
if condition(password):
return level
# 如果所有条件都不满足,默认认为是弱密码
return 'weak'
# 使用示例
passwords = ['short', 'Password1', 'SecurePassw0rd!', 'longerPass']
for password in passwords:
strength = check_password_strength(password)
print(f"{password}: {strength}")
#