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