# Python Document

# Generador de contraseñas seguras

# Limpieza de pantalla
import hashlib
import os
import re


def limpiar_pantalla():
    # Windows
    if os.name == "nt":
        os.system("cls")
    # Unix/Linux/Mac
    else:
        os.system("clear")


limpiar_pantalla()
print("GENERADOR DE CONTRASEÑAS SEGURAS")
contrasena = input(
    "Introduzca una contraseña que tenga mínimo 8 caracteres en las"
    " que haya mínimo una letra mayúscula, otra minúscula, un número"
    " y un carácter alfanumérico: "
)
patron = r"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
coincidencias = re.findall(patron, contrasena)
while len(contrasena) < 8 or len(coincidencias) == 0:
    contrasena = input(
        "Introduzca una contraseña que tenga mínimo 8 caracteres en las"
        " que haya mínimo una letra mayúscula, otra minúscula, un número"
        " y un carácter alfanumérico: "
    )
    patron = r"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
    coincidencias = re.findall(patron, contrasena)
datos = contrasena.encode("UTF-8")
cifrada = hashlib.sha256(datos)
encrypt16 = cifrada.hexdigest()
print("\nContraseña segura, generada y cifrada.")
print("\nContraseña recibida: ", contrasena)
print("\nContraseña encriptada: ", encrypt16, "\n")
