gpt4 book ai didi

python - 程序检查密码强度(和/或运算符不工作/检查字符串中的符号?)

转载 作者:太空宇宙 更新时间:2023-11-03 21:32:32 25 4
gpt4 key购买 nike

我正在制作一个密码程序,根据密码的长度以及有多少个大写/小写字母、数字和符号来检查密码的强度。

以下是我到目前为止的程序,但是每当我输入应返回为“中”的密码时,它就不起作用,而是给我“弱”或“强”。

此外,我不知道如何检查字符串中的符号。关于如何实现这一目标和实现该计划有什么建议吗?我只要求简单的解释和建议,因为我只是初中初学者。

非常感谢您的帮助。

password = None

print()
print("\nYour password should be between 6 and 12 characters .")
print()

password=(input("Please enter your password : "))

numbers= sum(1 for c in password if c.isdigit())
uppercase= sum(1 for c in password if c.isupper())
lowercase= sum(1 for c in password if c.islower())

if len(password) <6:
print("\n\tThe password is too short .")
print("\tTry a longer password .")
print("\n\tLowercase Letters : ", lowercase)
print("\tUppercase Letters : ", uppercase)
print("\tNumbers: ", numbers)

if len(password) >12:
print("\n\tThe password is too long .")
print("\tTry a shorter password .")
print("\n\tLowercase Letters : ", lowercase)
print("\tUppercase Letters : ", uppercase)
print("\tNumbers: ", numbers)

if len(password)>=6 and len(password)<=12:

if password.lower()== password or password.upper()==password or password.isdigit()==password:
print("\n\tYour password is weak . ")
print("\n\tLowercase Letters : ", lowercase)
print("\tUppercase Letters : ", uppercase)
print("\tNumbers : ", numbers)

elif password.lower()== password and password.upper()==password or password.isalnum()==password:
print("\n\tYour password is medium .")
print("\n\tLowercase Letters : ", lowercase)
print("\tUppercase Letters : ", uppercase)
print("\tNumbers : ", numbers)

else:
password.lower()== password and password.upper()==password and password.isalnum()==password
print ("\n\tYour password is strong .")
print("\n\tLowercase Letters : ", lowercase)
print("\tUppercase Letters : ", uppercase)
print("\tNumbers : ", numbers)

最佳答案

欢迎来到 Stack Overflow Aidyn。我发现您的代码存在一些问题。

<小时/>

条件

password.lower()== password and password.upper()==password or password.isalnum()==password

永远不会发生。第一部分 password.lower()==password 检查密码是否全部小写。下一部分 password.upper()==password 检查它是否全部大写。密码不能同时为全小写和全大写。

<小时/>

password.isalnum() 返回 True 或 False。因此,您不需要执行 password.isalnum()==password,而是检查 password.isalnum()==True

<小时/>

线路

password.lower()==密码和password.upper()==密码和password.isalnum()==密码

不在 elif 条件内,因此无论结果是 True 还是 False,都不会对程序产生任何影响。

<小时/>

也许你想做的是

   # If the password contains only lowercase characters or only uppercase or only digits, it is weak
if password.lower() == password or password.upper() == password or password.isdigit() == password:
...

# Otherwise, if the password does not have any symbols, it is medium strength
elif password.isalnum():
...

# Otherwise, it's strong.
else:
...
<小时/>

您可以通过执行以下操作来检查符号数量

symbols = sum(1 for c in password if not c.isalnum())

关于python - 程序检查密码强度(和/或运算符不工作/检查字符串中的符号?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53451241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com