检测密码强度
难度:⭐
1. 题目描述
题目描述
输入密码,然后检测密码强度:
- 密码长度必须大于等于6位
- 包含数字强度 +1
- 包含小写字母强度 +1
- 包含大写字母强度 +1
- 包含特殊字符强度 +1
- 密码中不同字符长度每 6 位强度 +1
最后输出密码强度
2. 关键点
- for 循环
- if 判断
3. 代码实现
点击显示代码
python
def password_score(password):
score = 0
if len(password) < 6:
return score
score += 1
has_sz = has_xx = has_dx = has_ts = False
for c in password:
if has_sz is False and c in '1234567890':
score += 1
has_sz = True
if has_xx is False and c in 'abcdefghijklmnopqrstuvwxyz':
score += 1
has_xx = True
if has_dx is False and c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
score += 1
has_dx = True
if has_ts is False and c in '~!@#$%^&*()_+':
score += 1
has_ts = True
score += len(set(password)) // 6
return score
if __name__ == '__main__':
password = input('请输入密码:')
score = password_score(password)
if score == 0:
print('密码长度必须大于等于6位')
elif score <= 2:
print('密码强度弱')
elif score <= 4:
print('密码强度较强')
elif score <= 6:
print('密码强度强')
else:
print('密码强度超强')
4. 运行示例
请输入密码:sdfja2HDH%!d232
密码强度强
5. 进阶思考
- 使用 string 标准库来代替数字和小写字母
- 编写生成随机密码函数