1

Creación de un Generador de contraseñas con Python Fácil!!!

En este tutorial les mostrare como crear un generador de contraseñas desde consola fácil y rápido con Python, haré uso de condicionales, listas, ciclos, funciones y más.

Paso número 1
Iniciamos con la siguiente código (el cual debe ir hasta abajo del todo tu código) que sirve para indicar el comienzo del programa, run() hace un llamado a una función de Python la cual describiré más abajo

if __name__ == '__main__':
    run()

Paso número 2
Procedemos a crear arriba de este inicio la función run(), declaramos un ciclo while con el valor booleano True este hará que siempre entre al ciclo, después pedimos que el usuario introduzca un número y lo declaramos como entero, procedemos a crear un try para capturar los errores en caso de que ingresen letras u otros caracteres en vez de números y abajo se escribe el mensaje que les pide un número, después hacemos un if para validar que el número que ingresa el usuario sea superior a 8 caracteres, esto es como requisito de una contraseña segura, si entra al if hay una variable que sirve para guardar el valor que retorne la función pass_generator() y le damos la variable con la respuesta del usuario como parámetro (esta función la creare después) en el else solo le notificamos que es menor, ahora ofrecemos al usuario la opción de crear una contraseña o mejor ya no, al pedir su respuesta siempre uso la función lower() para no tener problemas al validar la respuesta, para su respuesta valido solo la opción b o el no debido a que si me dice que si el ciclo solo vuelve a correr porque como tiene el valor true prácticamente es un ciclo infinito, por ello al contestar que no además del mensaje de gracias hago un break para romper el ciclo.

defrun():whileTrue:
        try:
            numero_char = int(input('¿Cuántos digitos quieres que sean? (debén ser mas de 8)\nR= '))

            if numero_char >= 8:
                password = pass_generator(numero_char)
                print('Tu nueva contraseña es: ' + password)
            else:
                print('Eso es menor a 8')

            repeat = input("""¿Quieres generar otra?
                a) Si
                b) No
                
                R= """).lower()

            if repeat == 'b'or repeat == 'no':
                print('Okye, fue un gusto generarte una contraseña segura!')
                breakexcept ValueError:
            print('Eso no es un número')

Ahora expliquemos la función que llama en el if, esta función va arriba de run(), aquí vamos a hacer la MAGIA!!!
Primero creamos 4 listas con mayúsculas, minúsculas, números y caracteres, todos irán declarados como un string para que no tengamos problemas al guardar el resultado en una sola variable, después en una variable unimos las listas para unificarlas, seguido de esto declaramos una lista vacía para guardar nuestra contraseña, ahora importaremos la librería random, en el for creamos un range(numero_char) con el parámetro de caracteres que debe tener la contraseña, esto con el propósito de que sea su limite a recorrer, después adentro del for en una variable pedimos que nos de un elemento random de la lista que combinamos y después pedimos que lo incluya en la nueva lista de password al llegar a los caracteres pedidos por el usuario con la función join los elementos se guardarán en la cadena, separados por el carácter que especifiquemos antes de la coma, que en este caso lo dejamos vacío, por último retornamos ese valor y LISTO!!! Hemos terminado un programa de Generación de Contraseñas en Python a prueba de errores.

import random


defpass_generator(numero_char):
    mayus = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P', 'Q', 'R', 'S', 'T',
             'U', 'V', 'X', 'Y', 'Z']
    minus = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't',
             'u', 'v', 'x', 'y', 'z']
    nums = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
    chars = ['*', '+', '-', '/', '@', '_', '?', '!', '[', '{', '(', ')', '}', ']', ',', ';', '.', '>', '<', '~', '°',
             '^', '&', '$', '#', '"']

    characters = mayus + minus + nums + chars

    password = []

    for i in range(numero_char):
        char_random = random.choice(characters)
        password.append(char_random)

    password = "".join(password)

    return password
Escribe tu comentario
+ 2