需要复杂条件的密码验证程序的帮助

问题描述 投票:-1回答:1

我只是从python开始,我正在尝试为密码建立一个简单的python验证。我希望密码包含2个大写字母,2个小写字母和2个特殊字符。密码的最小长度必须为10。这就是我到目前为止的密码。代码没有给我任何错误,但我无法获得良好的结果。非常感谢您的帮助,因此我可以在这里了解我做错了什么。

def motdepasse(motdepasse):
majuscule = 'ABCDEFGHIJKLMNOPQRSTUVXYZ'
minuscule = 'abcdefghijklmnopqrstuvxyz'
char = '[@_!#$%^&*()<>?/\|}{~:]'

while True:
    motdepasse = input("Entrez un mot de passe (Doit contenir 10 caractères avec 2 majuscules, 2 minuscules et 2 caractères spéciaux): ")
    valid = 0

    if len(motdepasse) < 10:
        print("Entrez un mot de passe valide!")

        continue

    elif not (motdepasse.find(majuscule)) >= 2  :
        print("Entrez un mot de passe valide!")

        continue

    elif not (motdepasse.find(minuscule)) >= 2:
        print("Entrez un mot de passe valide!")

        continue

    elif not (motdepasse.find(char)) >= 2 :
        print("Entrez un mot de passe valide!")

        continue

    else:
        valid = True
        break
if valid == 0:
    print("Mot de passe valide")
python passwords
1个回答
0
投票
majuscule = 'ABCDEFGHIJKLMNOPQRSTUVXYZ' minuscule = 'abcdefghijklmnopqrstuvxyz' char = '[@_!#$%^&*()<>?/\|}{~:]' while True: motdepasse = input("Entrez un mot de passe (Doit contenir 10 caractères avec 2 majuscules, 2 minuscules et 2 caractères spéciaux): ") valid = 0 if len(motdepasse) < 10: print("Invalid Length") continue elif not len([x for x in motdepasse if x in majuscule]) >= 2: print("No Caps") continue elif not len([x for x in motdepasse if x in minuscule]) >= 2: print("Invalid lowercase") continue elif not len([x for x in motdepasse if x in minuscule]) >= 2 : print("Invalid specials") continue else: valid = True break if valid == 0: print("Mot de passe valide")
© www.soinside.com 2019 - 2024. All rights reserved.