用Python编写代码要求检测密码安全强度。参考提示:密码如果小于8位,则输出弱;如果都包含大写,小写,数字,特殊字符,则输出强;如果有数字,并且大小写至少有一种则输出中;否则输出弱。需要用到字符串的匹配功能(import re, re.search())
时间: 2024-10-13 12:15:10 浏览: 33
在Python中,你可以通过正则表达式(`re`模块的`search()`函数)来检查密码是否满足指定的安全条件。下面是一个简单的示例代码:
```python
import re
def check_password_strength(password):
# 定义不同的安全性级别
weak = "弱"
medium = "中"
strong = "强"
# 检查长度
if len(password) < 8:
return weak
# 检查是否包含大写字母、小写字母、数字和特殊字符
has_uppercase = bool(re.search(r"[A-Z]", password))
has_lowercase = bool(re.search(r"[a-z]", password))
has_numbers = bool(re.search(r"\d", password))
has_special_chars = bool(re.search(r"[!@#$%^&*(),.?\":{}|<>]", password))
# 如果所有条件都满足,则为强
if has_uppercase and has_lowercase and has_numbers and has_special_chars:
return strong
# 否则,只要满足部分条件就为中
elif has_numbers and (has_uppercase or has_lowercase):
return medium
# 如果都不满足,返回弱
else:
return weak
# 测试函数
passwords = ["short", "Password1!", "Pa$$w0rd", "P@ssw0rd123"]
for password in passwords:
print(f"{password}: {check_password_strength(password)}")
```
阅读全文