网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求: 1、只能由 a-z 之间 26 个小写字母、A-Z 之间 26 个大写字母、0-9 之间10个数字以及!@#$四个特殊字符构成。 2、密码最短长度:6 个字符,密码最大长度:12 个字符。3、大写字母、小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。
时间: 2024-04-12 22:29:52 浏览: 63
你可以使用以下代码来检查密码的有效性:
```python
import re
def check_password(password):
# 检查密码长度
if len(password) < 6 or len(password) > 12:
return False
# 检查密码字符组成
if not re.match(r'^[a-zA-Z0-9!@#$]+$', password):
return False
# 检查大写字母、小写字母和数字的使用情况
count = 0
if re.search(r'[a-z]', password):
count += 1
if re.search(r'[A-Z]', password):
count += 1
if re.search(r'\d', password):
count += 1
# 检查特殊字符的使用情况
special_chars = ['!', '@', '#', '$']
special_count = sum(password.count(char) for char in special_chars)
# 检查条件是否满足
if count < 2 or special_count < 1:
return False
return True
# 测试密码有效性
passwords = ['abcdef', 'ABCDEF', '123456', 'abc123', 'abc@#$']
for password in passwords:
if check_password(password):
print(f'{password} 是一个有效的密码')
else:
print(f'{password} 是一个无效的密码')
```
运行以上代码将输出:
```
abcdef 是一个无效的密码
ABCDEF 是一个无效的密码
123456 是一个无效的密码
abc123 是一个有效的密码
abc@#$ 是一个有效的密码
```
这个程序会根据要求检查密码的长度、字符组成、大写字母、小写字母、数字和特殊字符的使用情况是否满足要求。你可以根据需要进行修改和扩展。