簡體   English   中英

密碼檢查器 Python

[英]Password Checker Python

在我的密碼檢查器中,我不知道為什么當我在輸入中使用大寫和小寫時,它不會輸出強密碼。

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")

你的邏輯在這里倒退

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):
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")

當然在“弱通行證”中應該是

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

因為您正在檢查 pass 是全部小寫還是全部大寫

好的。 如果字符串中包含數字或特殊字符,則 .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 兼容

這是我制作的密碼檢查器,用於檢查符號和數字以及大寫字母:

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 語句中的值以滿足您的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM