密码检查器Python

时间:2016-12-10 21:13:56

标签: python passwords

在我的密码检查器中,我不知道为什么当我在输入中使用大写和小写时,它并没有输出强密码。

enter code here
print("Password Checker")
pw=input("Enter Your Password Here: ")

if len(pw)<=5:
if pw!=pw.upper()or pw!=pw.lower():
    print("WEAK Password")
elif len(pw)>=6 and len(pw)<=12:
if pw==pw.lower():
    print("Medium Password")
elif len(pw)>=13:
    print("Too Long")
elif len(pw)<=12 and len(pw)>=6:
if pw==pw.upper() and pw==pw.lower():
    print("Thats A STRONG Password")

4 个答案:

答案 0 :(得分:2)

你的逻辑在这里倒退

if pw!=pw.upper() or pw!=pw.lower():

你要使用

if pw != pw.upper() and pw != pw.lower():

if pw == pw.upper() or pw == pw.lower():

您在稍后的行中遇到类似的问题

if pw==pw.upper() and pw==pw.lower():

如果您想检查至少有一个上部和一个下部字母,您可以执行类似

的操作
import string
if any(i in string.ascii_lowercase for i in pw) and any(i in string.ascii_uppercase for i in pw):

答案 1 :(得分:2)

if pw==pw.upper() and pw==pw.lower():
    print("Thats A STRONG Password")

如果pw同时为大写和小写,请在此处查看。 我想你想检查密码是否只是小写而不仅仅是大写。所以它应该是

if pw != pw.upper() and pw != pw.lower():
    print("Thats A STRONG Password")

当然在&#34;弱传#34;它应该是

if pw == pw.upper() or pw == pw.lower():
    print("Thats A WEAK Password")

因为您要检查pass是全部小写还是全部大写

答案 2 :(得分:1)

确定。如果字符串中包含数字或特殊字符,则确定字符串是全部大写字母还是全部小写字母的.upper()和.lower()方法不会起作用。

而是使用.isupper()来检查字符串中的特定字符是否为大写。和.islower()表示小写。这些方法每个字符都检查字符串,因此代码行将是:

if any(x.isupper() for x in pw) and any(x.islower() for x in pw):

所以完整的代码(组织逻辑)将是:

print("Password Checker")
pw=input("Enter Your Password Here: ")

#checking if password is to short, or to long.
if len(pw)<=5 or len(pw)>=13:
    if len(pw)<=5:
        print ("To Short")
    else:
        print ("Too Long")

else:#password is correct length
    #checking if a uppercase AND a lowwercase.
    if any(x.isupper() for x in pw) and any(x.islower() for x in pw):
        print ("Thats A STRONG Password")
    else:
        print ("Medium Password")

如果我能回答任何有关此事的进一步问题,请告诉我。

注意:从使用input()更改为raw_input()以与python 2.7

兼容

答案 3 :(得分:0)

这是我制作的密码检查器,用于检查符号和数字以及大写字母:

def check_password(password):
   strength = 0
   symbol_list = ['!','@','#','$','%','^','&','*','(',')','[',']','{','}',';',':','<','>',',','.']
   num_list =  ['1','2','3','4','5','6','7','8','9','0'] 
   if len(password) >= 8:
   # this is the part that checks for capitol letters
      for k in password:
         if k == k.upper:
            strength +=1
      for i in symbol_list:
         if i in password:
            strength+=1
      for j in num_list:
         if j in password:
            strength += 1
      # determines the strength
      if strength <= 5:
         print("Weak password")
      elif strength > 5 and strength < 8:
         print("Ok Password")
      if strength > 8:
         print("Strong password")
   else:
      print("Password too short")

注意:您可以更改 if 语句中的值以满足您的需要。