如何进行密码检查?

2024-06-12 15:57:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图做一个密码检查器,要求用户输入一个介于8到24个字符之间的密码(如果超出这个范围,将显示一条错误消息)。另外,根据用户输入的密码长度进行加减。在

If there is at least one 'capital', 'lower case', 'symbol' or 'number': add 5 points.

If there is a capital and a number and a lower: add 15 points.

If entered password is in the form of 'QWERTY': subtract 15 points.

以下是我目前为止的代码:

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

Tags: 用户in密码forifislowerpoints
1条回答
网友
1楼 · 发布于 2024-06-12 15:57:40

你可以试试这个:

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)

相关问题 更多 >