2、检测密码安全强度。 参考提示:密码如果小于8位,则输出弱;如果都包含大写,小写,数字,特殊字符,则输出强;如果有数字,并且大小写至少有一种则输出中;否则输出弱。需要用到字符串的匹配功能(import re, re.search()),
时间: 2024-10-13 17:17:18 浏览: 27
在Python中,检测密码的安全强度通常会通过正则表达式来实现。你可以创建一个函数,接收用户输入的密码作为参数,然后使用`re`模块的`search()`函数检查密码是否满足特定条件。以下是一个简单的示例:
```python
import re
def check_password_strength(password):
# 定义正则模式
patterns = [
# 数字的存在
r'\d',
# 至少有一个大写字母
r'[A-Z]',
# 至少有一个小写字母
r'[a-z]',
# 至少有一个特殊字符
r'[^A-Za-z0-9\s]'
]
conditions = {
'strong': all(re.search(pattern, password) for pattern in patterns),
'medium': bool(re.search(r'\d') and (re.search(r'[A-Z]', password) or re.search(r'[a-z]', password))),
'weak': len(password) < 8 or not any(re.search(pattern, password) for pattern in patterns)
}
if conditions['weak']:
return '弱'
elif conditions['medium']:
return '中'
else:
return '强'
# 测试密码
passwords_to_test = ['123456', 'Password1!', 'P@ssw0rd', 'short']
for password in passwords_to_test:
print(f"{password}: {check_password_strength(password)}")
```
在这个例子中,函数首先定义了一些正则表达式模式,分别检查数字、大写字母、小写字母和特殊字符。然后它根据密码满足所有条件的程度判断密码强度。若密码长度小于8位或没有满足任一条件,则认为密码弱;有数字但缺少其他复杂元素的视为中等强度;完全满足条件的视为强。
阅读全文
相关推荐
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![xlsm](https://img-home.csdnimg.cn/images/20250102104920.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)