Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบว่ารหัสผ่านที่กำหนดตรงตามเกณฑ์หรือไม่ใน Python


สมมติว่าเรามีสตริง s แทนรหัสผ่าน เราต้องตรวจสอบเกณฑ์รหัสผ่าน มีกฎไม่กี่ข้อที่เราต้องปฏิบัติตาม -

  • รหัสผ่านมีความยาวอย่างน้อย 8 อักขระและไม่เกิน 20 อักขระ
  • รหัสผ่านมีอย่างน้อยหนึ่งหลัก
  • รหัสผ่านประกอบด้วยตัวพิมพ์เล็กอย่างน้อยหนึ่งตัวและตัวพิมพ์ใหญ่หนึ่งตัว
  • รหัสผ่านมีอักขระพิเศษอย่างน้อยหนึ่งตัว เช่น !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~
  • รหัสผ่านไม่มีอักขระอื่นๆ เช่น แท็บหรือขึ้นบรรทัดใหม่

ดังนั้น หากอินพุตเป็น "@bCd12#4" ผลลัพธ์จะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • a:=0, b:=0, c:=0, d:=0
  • ถ้าขนาดของรหัสผ่าน <8 หรือขนาดของรหัสผ่าน> 20 แล้ว
    • คืนค่าเท็จ
  • สำหรับอักขระ i แต่ละตัวในรหัสผ่าน ให้ทำ
    • ถ้าฉันเป็นตัวพิมพ์ใหญ่
      • a :=a + 1
    • มิฉะนั้น เมื่อ i เป็นตัวพิมพ์เล็ก แล้ว
      • b :=b + 1
    • มิฉะนั้นเมื่อฉันอยู่ในชุดอักขระพิเศษ '"!"#^modAND\'() *+,- ./:;<=>?@[\\]XOR_`{OR}~"' แล้ว
      • c :=c + 1
    • มิฉะนั้น เมื่อ i เป็นตัวเลข แล้ว
      • d :=d + 1
  • ถ้า a>=1 และ b>=1 และ c>=1 และ d>=1 และ a+b+c+d เท่ากับขนาดของรหัสผ่าน ดังนั้น
    • คืนค่า True
  • มิฉะนั้น
    • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, password):
      a=0
      b=0
      c=0
      d=0
      if len(password)<8 or len(password)>20:
         return False
      for i in password:
         if i.isupper():
            a+=1
         elif i.islower():
            b+=1
         elif i in '"!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~"':
            c+=1
         elif i.isdigit():
            d+=1
      if a>=1 and b>=1 and c>=1 and d>=1 and
         a+b+c+d==len(password):
      return True
      else:
         return False
s = "@bCd12#4"
ob = Solution()
print(ob.solve(s))

อินพุต

"@bCd12#4"

ผลลัพธ์

True