En este artículo, veremos cómo crear un generador de contraseñas aleatorias usando Python .
Las contraseñas son un medio por el cual un usuario prueba que está autorizado para usar un dispositivo. Es importante que las contraseñas sean largas y complejas. Debe contener al menos más de diez caracteres con una combinación de caracteres como porcentaje (%), comas (,) y paréntesis, así como letras y números en mayúsculas y minúsculas. Aquí crearemos una contraseña aleatoria usando código Python.
Ejemplo de una contraseña débil: contraseña123
Ejemplo de una contraseña segura: &gj5hj&*178a1
Módulos necesarios
string: para acceder a las constantes de string . Los que necesitaríamos son:
- string.ascii_letters : ASCII es un sistema que se utiliza para representar caracteres digitalmente, cada carácter ASCII tiene su propio código único. string.ascii_letters es una constante de string que contiene todas las letras en ASCII que van de la A a la Z y de la a a la z. Su valor no depende de la configuración regional y es solo una concatenación de ascii_uppercase y ascii_lowercase. Por lo tanto, nos proporciona todo el conjunto de letras como una string que se puede usar como se desee.
- string.digits : esta es una string preiniciada que contiene todos los dígitos en el sistema de numeración arábiga, es decir, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Debe tenerse en cuenta que incluso aunque estos son dígitos, el tipo sigue siendo una constante de string y todos los dígitos se concatenan así: «0123456789». Si queremos acceder a números específicos, podemos hacerlo mediante el corte.
- string.punctuation : además de letras y dígitos, Python también nos proporciona todos los caracteres especiales en una constante de string preiniciada. Estos incluyen varios tipos de llaves, operadores lógicos, operadores de comparación, operadores aritméticos, así como signos de puntuación como comas, comillas, puntos, signos de exclamación y signos de interrogación. La string completa es – !”#$%&'()*+, -./:;<=>?@[\]^_`{|}~
aleatorio: el módulo aleatorio de python ayuda al usuario a generar números pseudoaleatorios. Dentro del módulo, hay varias funciones que solo dependen de la función “random()”. Esta función genera un flotante aleatorio de manera uniforme en el rango semiabierto [0.0, 1.0), es decir, genera un número decimal mayor o igual a 0 y estrictamente menor que uno. Otras funciones usan este número a su manera. Estas funciones se pueden utilizar para bytes, enteros y secuencias. para nuestra tarea, nos interesan las secuencias. Hay funciones aleatorias. opciones que toman una secuencia como argumento y devuelven un elemento aleatorio de esa secuencia.
Implementación de código:
Primero, tome la longitud de la contraseña como entrada. Luego, podemos mostrar un mensaje sobre la posible lista de caracteres que un usuario desea incluir en la contraseña:
- Para incluir letras en el conjunto de caracteres, agregue string.ascii_letters en la lista de caracteres.
- Para incluir letras en el conjunto de caracteres, agregue string.dígitos en la lista de caracteres.
- Para incluir letras en el conjunto de caracteres, agregue string.puntuación en la lista de caracteres.
Ejecute un bucle for hasta la longitud de la contraseña y, en cada iteración, elija un carácter aleatorio usando random.choice() de characterList. Finalmente, imprima la contraseña.
Python3
import string import random # Getting password length length = int(input("Enter password length: ")) print('''Choose character set for password from these : 1. Digits 2. Letters 3. Special characters 4. Exit''') characterList = "" # Getting character set for password while(True): choice = int(input("Pick a number ")) if(choice == 1): # Adding letters to possible characters characterList += string.ascii_letters elif(choice == 2): # Adding digits to possible characters characterList += string.digits elif(choice == 3): # Adding special characters to possible # characters characterList += string.punctuation elif(choice == 4): break else: print("Please pick a valid option!") password = [] for i in range(length): # Picking a random character from our # character list randomchar = random.choice(characterList) # appending a random character to password password.append(randomchar) # printing password as a string print("The random password is " + "".join(password))
Producción:
Entrada 1: tomando solo letras en el conjunto de caracteres
Entrada 1: Tomando letras y números tanto
Entrada 3: tomando letras, números y caracteres especiales
Publicación traducida automáticamente
Artículo escrito por chandramauliguptach y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA