paint-brush
Cómo crear un generador de contraseñas aleatorias usando Pythonpor@terieyenike
30,528 lecturas
30,528 lecturas

Cómo crear un generador de contraseñas aleatorias usando Python

por Teri4m2022/09/03
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

El uso de una contraseña segura al iniciar sesión es esencial para evitar que los delincuentes (hackers) obtengan acceso a su cuenta. Este artículo le enseñará cómo crear un generador de contraseñas aleatorias usando Python. Usaremos este enfoque: escriba todos los tipos de caracteres de contraseñas aceptables, como letras, números y símbolos. Ofrezca a los usuarios la capacidad de ingresar la cantidad de letras, símbolos y números para la contraseña generada. Aleatorice el orden de los caracteres para que sea difícil adivinar la contraseña.
featured image - Cómo crear un generador de contraseñas aleatorias usando Python
Teri HackerNoon profile picture


Cada sitio web tiene algún tipo de interfaz de seguridad que requiere la autenticación del usuario. Estos formularios suelen utilizar su correo electrónico y contraseña para acceder al sitio web. El uso de una contraseña segura al iniciar sesión es esencial para evitar que los delincuentes (hackers) obtengan acceso a su cuenta.


Este artículo le enseñará cómo crear un generador de contraseñas aleatorias usando Python generando una combinación de letras, números y símbolos como caracteres codificados, lo que dificulta descifrar o adivinar la contraseña.


Construyamos juntos un generador de contraseñas aleatorias.


Empezando

Para construir un generador de contraseñas aleatorias, usaremos este enfoque:

  • Escriba todos los tipos de caracteres de contraseñas aceptables, como letras, números y símbolos
  • Ofrezca a los usuarios la posibilidad de ingresar la cantidad de letras, símbolos y números para la contraseña generada
  • Aleatoriza el orden de los caracteres para que sea difícil de adivinar


Creación del generador de contraseñas aleatorias

Como sabes, algunas aplicaciones en Internet sugieren contraseñas aleatorias cuando creas una nueva cuenta. Los caracteres aleatorios los decide usted y pueden tener hasta ocho caracteres.


Cree un nuevo archivo, main.py , para escribir los scripts de la aplicación.


 # main.py letters = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] print("Welcome to the PyPassword Generator!") nr_letters = int(input("How many letters would you like in your password?\n")) nr_symbols = int(input(f"How many symbols would you like?\n")) nr_numbers = int(input(f"How many numbers would you like?\n"))


Los caracteres del bloque de código anterior forman la combinación del generador de contraseñas presentado en una lista.


Lo siguiente es asegurarse de que los usuarios puedan ingresar una cifra, un número entero que representa la cantidad de veces que aparecerá un carácter cuando se muestre el resultado final y se declare con una variable.


\n : representa que el valor de entrada irá a la siguiente línea


Ahora, actualicemos el resto del código. Copia y pega lo siguiente:


 # main.py # Password Generator Project import random # add this # letters, numbers, and symbols lists # users' input for the amount of characters # add these below password_list = [] for char in range(1, nr_letters + 1): password_list.append(random.choice(letters)) for char in range(1, nr_symbols + 1): password_list.append(random.choice(numbers)) for char in range(1, nr_numbers + 1): password_list.append(random.choice(symbols)) random.shuffle(password_list)


El bloque de código hace lo siguiente:

  • Importe el módulo random incorporado utilizado para generar números aleatorios
  • Cree una lista vacía [] con la variable password_list
  • Iterar a través del número en la función de rango para crear una secuencia de números desde el índice de inicio y terminar con el último índice más 1
  • A continuación, agregue la lista vacía para obtener un elemento seleccionado al azar usando el método random.choice() para cada una de las variables declaradas del personaje.
  • Mezcla la lista de password_list recién creada cambiando la posición de los elementos cada vez que una nueva contraseña usa el método .shuffle()


Convierta la lista de contraseñas en una cadena

Copie y actualice el siguiente código:


 # main.py # import # letters, numbers, and symbols lists # users' input for the amount of characters # randomize characters # add this password = "" for char in password_list: password += char # convert list to string pwd = ''.join(password_list) print(f"Your random password to use is: {pwd}")


El proceso de convertir una lista en una cadena es el siguiente:

  • Crear una variable de cadena vacía, password
  • Iterar a través de la lista de contraseñas usando la palabra clave for
  • Concatenar las cadenas de contraseña con la variable char en bucle
  • Use el método .join() para cambiar la iteración de la lista de la lista de contraseñas a una cadena
  • Finalmente, muestre el resultado de la contraseña usando las f-strings


El resultado final del código:


 # main.py import random letters = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] print("Welcome to the PyPassword Generator!") nr_letters = int(input("How many letters would you like in your password?\n")) nr_symbols = int(input(f"How many symbols would you like?\n")) nr_numbers = int(input(f"How many numbers would you like?\n")) password_list = [] for char in range(1, nr_letters + 1): password_list.append(random.choice(letters)) for char in range(1, nr_symbols + 1): password_list.append(random.choice(numbers)) for char in range(1, nr_numbers + 1): password_list.append(random.choice(symbols)) random.shuffle(password_list) password = "" for char in password_list: password += char print("char", char) # convert list to string pwd = ''.join(password_list) print(f"Your random password to use is: {pwd}")


Conclusión

En este artículo, desarrolló una aplicación que genera contraseñas aleatorias que no son las mismas en cada intento, lo que lo convierte en un caso de uso dinámico para generar tantas contraseñas como sea posible.


Aunque este puede no ser el mejor enfoque para generar contraseñas aleatorias, la esencia del artículo es mostrar la posibilidad de usar el programa Python para crear una contraseña. Aún así, la salida es inesperada y diferente con cada nueva entrada, sin importar la longitud de la contraseña.




Aprende más