题目:让用户输入密码字符串,并使用两种方法(用集合/不使用集合)检查并判断密码字符串的安全强度。
合格密码要求:
(1)密码必须至少包含6个字符;
(2)密码强度等级与包含字符种类的对应关系。如果密码字符串包含小写字母、大写字母、数字、标点符号中的4种,为强密码;包含3种表示中高强度,2种表示中低强度,1种为弱密码;
如果输入长度不够或者四种都不包含给出错误提示,否则给出强度等级。
import re
count = 0
a = 0
key = input("请输入密码")
for x in key:
if not re.search("[0-9A-Za-z,.?\"!\';:]", x):
# print("输入错误,密码不符合要求")
a = 1
break
if len(key) < 6:
print("输入错误,密码长度不够")
count = -5
if a:
print("输入错误,密码不符合要求")
else:
if re.search("[0-9]", key):
count += 1
if re.search("[A-Z]", key):
count += 1
if re.search("[a-z]", key):
count += 1
if re.search("[,.?\"!\';:]", key):
count += 1
if count == 1:
print("密码强度:弱密码")
elif count == 2:
print("密码强度:中低强度密码")
elif count == 3:
print("密码强度:中高强度密码")
elif count == 4:
print("密码强度:强密码")
演示结果: