让用户输入密码(由英文字母、数字、下划线组成),判断密码的强度
时间: 2024-09-27 17:13:40 浏览: 47
当判断用户输入的密码强度时,通常会考虑以下几个方面:
1. **长度**:密码越长,通常强度越高,因为猜测的可能性更小。建议至少包含8到12位字符。
2. **复杂度**:密码应包含大写字母、小写字母、数字和特殊字符(如下划线 "_")的组合,避免仅使用一种类型的字符。
3. **无规律性**:密码应避免使用常见单词、生日、电话号码等容易被猜出的信息。
4. **非重复**:避免使用连续的数字或字母序列,这易于破解。
5. **无敏感信息**:避免将个人信息直接嵌入密码中,如姓名、地址等。
为了编写一个简单的程序来评估密码强度,你可以使用以下步骤:
```python
def password_strength(password):
if len(password) < 8:
return "弱"
has_uppercase = any(c.isupper() for c in password)
has_lowercase = any(c.islower() for c in password)
has_digit = any(c.isdigit() for c in password)
has_special_char = '_' in password
if not all([has_uppercase, has_lowercase, has_digit, has_special_char]):
return "一般"
if any(consecutive_pattern(password)):
return "弱"
return "强"
# 检查连续字符
def consecutive_pattern(password):
patterns = [''.join(sorted(s)) for s in zip(*[password[i:] for i in range(3)])]
return any(''.join(p) == p for p in patterns)
password = input("请输入您的密码:")
strength = password_strength(password)
print(f"密码强度:{strength}")
阅读全文