Nehmen wir ein Passwort als eine Kombination aus alphanumerischen Zeichen und Sonderzeichen und prüfen Sie anhand weniger Bedingungen, ob das Passwort gültig ist oder nicht.

Bedingungen für ein gültiges Passwort sind:

  1. Sollte mindestens eine Nummer haben.
  2. Sollte mindestens einen Groß- und einen Kleinbuchstaben haben.
  3. Sollte mindestens ein spezielles Symbol haben.
  4. Sollte zwischen 6 und 20 Zeichen lang sein.
Eingabe:   Geek12 #
 Ausgabe: Passwort ist gültig.
Eingabe:   asd123
 Ausgabe: Ungültiges Passwort !!

Wir können überprüfen, ob eine bestimmte Zeichenfolge als Kennwort berechtigt ist oder nicht.

Methode 1: Naive Methode (ohne Verwendung von Regex).

  
def password_check(passwd): 
      
    SpecialSym =['$', '@', '#', '%'] 
    val = True
      
    if len(passwd) < 6: 
        print('length should be at least 6') 
        val = False
          
    if len(passwd) > 20: 
        print('length should be not be greater than 8') 
        val = False
          
    if not any(char.isdigit() for char in passwd): 
        print('Password should have at least one numeral') 
        val = False
          
    if not any(char.isupper() for char in passwd): 
        print('Password should have at least one uppercase letter') 
        val = False
          
    if not any(char.islower() for char in passwd): 
        print('Password should have at least one lowercase letter') 
        val = False
          
    if not any(char in SpecialSym for char in passwd): 
        print('Password should have at least one of the symbols $@#') 
        val = False
    if val: 
        return val 
  
def main(): 
    passwd = 'Geek12@'
      
    if (password_check(passwd)): 
        print("Password is valid") 
    else: 
        print("Invalid Password !!") 
          
if __name__ == '__main__': 
    main() 
Ausgabe:

Passwort ist gültig

Dieser Code verwendete boolesche Funktionen, um zu überprüfen, ob alle Bedingungen erfüllt waren oder nicht. Wir sehen, dass die Komplexität des Codes zwar grundlegend ist, die Länge jedoch beträchtlich ist.
 
Methode 2: Verwenden von regex

compile()Die Methode des Regex-Moduls erstellt ein Regex-Objekt, mit dem Regex-Funktionen für die pat- Variable ausgeführt werden können. Dann prüfen wir, ob auf das durch pat definierte Muster die Eingabezeichenfolge passwd folgt . In diesem Fall gibt die Suchmethode true zurück , wodurch das Kennwort gültig wird.

import re 
  
def main(): 
    passwd = 'Geek12@'
    reg = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!#%*?&]{6,20}$"
      
    
    pat = re.compile(reg) 
      
    
    mat = re.search(pat, passwd) 
      
    
    if mat: 
        print("Password is valid.") 
    else: 
        print("Password invalid !!") 
  
if __name__ == '__main__': 
    main() 
Ausgabe:
Passwort ist gültig.