如何制作密码检查器?

问题描述:

我试图创建一个密码检查器,用户被要求输入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)