Categorice la contraseña como fuerte o débil usando Regex en Python

Dada una contraseña, tenemos que categorizarla como fuerte o débil. Hay algunos controles que deben cumplirse para ser una contraseña segura. Para una contraseña débil, necesitamos devolver la razón por la cual es débil.

Las condiciones a cumplir son:

  • Mínimo 9 caracteres y máximo 20 caracteres.
  • No puede ser una nueva línea o un espacio
  • No debe haber tres o más caracteres repetidos seguidos.
  • El mismo patrón de string (mínimo de dos caracteres de longitud) no debe repetirse.

Nota: Para verificar las validaciones básicas de una contraseña, haga clic aquí.

Ejemplos:

Input1 : Qggf!@ghf3
Output1 : Strong Password!

Input2 : aaabnil1gu
Output2 : Weak Password: Same character repeats three 
or more times in a row

Input3 : Geeksforgeeks
Output3 : Weak Password: Same character repeats three 
or more times in a row

Input4 : Aasd!feasnm
Output4 : Weak password: Same string pattern repetition

Input5 : 772*hdf77
Output5 : Weak password: Same string pattern repetition

Input6 : " "
Output6 : Password cannot be a newline or space!

A continuación se muestra la implementación.

# Categorizing password as Strong or 
# Weak in Python using Regex 
  
  
import re
  
  
# Function to categorize password
def password(v):
   
    # the password should not be a
    # newline or space
    if v == "\n" or v == " ":
        return "Password cannot be a newline or space!"
   
    # the password length should be in
    # between 9 and 20
    if 9 <= len(v) <= 20:
   
        # checks for occurrence of a character 
        # three or more times in a row
        if re.search(r'(.)\1\1', v):
            return "Weak Password: Same character repeats three or more times in a row"
   
        # checks for occurrence of same string 
        # pattern( minimum of two character length)
        # repeating
        if re.search(r'(..)(.*?)\1', v):
            return "Weak password: Same string pattern repetition"
   
        else:
            return "Strong Password!"
   
    else:
        return "Password length must be 9-20 characters!"
  
# Main method
def main():
   
    # Driver code
    print(password("Qggf!@ghf3"))
    print(password("Gggksforgeeks"))
    print(password("aaabnil1gu"))
    print(password("Aasd!feasn"))
    print(password("772*hd897"))
    print(password(" "))
   
   
# Driver Code
if __name__ == '__main__':
    main()

Producción:

¡Contraseña segura!
Contraseña débil: repetición del mismo patrón de string
Contraseña débil: el mismo carácter se repite tres o más veces seguidas
¡Contraseña segura!
¡Contraseña segura!
¡La contraseña no puede ser una nueva línea o un espacio!

Publicación traducida automáticamente

Artículo escrito por Anshika Goyal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *