如何制作密码检查器?
问题描述:
我试图创建一个密码检查器,用户被要求输入8到24个字符的密码(如果超出此范围,将显示一条错误消息)。此外,根据用户输入的密码长度增加或减少点数。如何制作密码检查器?
如果至少有一个“大写”,“小写”,“符号”或“数字”: 加5分。
如果有一个大写字母和一个数字,并且低一点:加15分。
如果输入的密码是'QWERTY'的形式:减去15分。
这里是我到目前为止的代码:
passcheck = input("Enter a password to check: ")
passlength = len(passcheck)
symbols = {'!','$','%','^','&','*','(',')','-','_','=','+'}
qwerty = ["qwertyuiop", "asdfghjkl", "zxcvbnm"]
upper = sum(1 for character in passcheck if character.isupper())
lower = sum(1 for character in passcheck if character.islower())
num = sum(1 for character in passcheck if character.isnumeric())
sym = passcheck.count('!$%^&*()_-+=')
if passlength <8 or passlength >24:
print("ERROR. Password must be between 8-24 characters long")
else:
if upper in passcheck > 0:
score += 5
if lower in passcheck > 0:
score += 5
if num in passcheck > 0:
score += 5
答
你可以试试这个:
import sys
passcheck = input("Enter a password to check: ")
checking=set(passcheck)
passlength = len(passcheck)
points=0
symbols = {'!','$','%','^','&','*','(',')','-','_','=','+'}
qwerty = ["qwertyuiop", "asdfghjkl", "zxcvbnm"]
if passlength <8 or passlength >24:
print("ERROR. Password must be between 8-24 characters long")
else:
for i in qwerty:
if i in passcheck: #If entered password is in the form of 'QWERTY': subtract 15 points.
points-=15
print("your password contain form of 'QWERTY' , Don't use weak password.")
print(points)
sys.exit()
if any(i.islower() for i in checking) or any(i.isupper() for i in checking) or any(i for i in checking if i in symbols) or any(i.isdigit() for i in checking):
points+=5 #If there is at least one 'capital', 'lower case', 'symbol' or 'number': add 5 points.
if any(i.islower() for i in checking) and any(i.isupper() for i in checking) and any(i.isdigit() for i in checking):
points+=15 #If there is a capital and a number and a lower: add 15 points.
print(points)