Aprenda a codificar un generador de contraseñas en Python, para generar contraseñas seguras, utilizando Python secretos módulo.
Python es un lenguaje de programación versátil que puede usar en aplicaciones de automatización, desarrollo web, análisis de datos y más.
Puede usar Python para automatizar tareas del mundo real, como monitorear sitios web, enviar correos electrónicos y generar contraseñas. En este tutorial, aprenderá cómo crear un generador de contraseñas seguras y aleatorias en Python.
Empecemos…
3 Reasons Why You Should Code a Password Generator in Python

¿Alguna vez se ha sentido cansado de generar contraseñas seguras y realizar un seguimiento de ellas? He aquí por qué debería considerar codificar un generador de contraseñas en Python.
1. Automatice el proceso de generación de contraseñas
En un día típico de su vida, visitará numerosos sitios web, desde sitios web de comercio electrónico hasta plataformas de aprendizaje y codificación. La mayoría de los sitios web requieren que inicie sesión con credenciales. Esta es una tarea repetitiva que puede automatizar mediante un script de Python.
2. Genere contraseñas seguras
Encontrar contraseñas seguras que cumplan con las restricciones de seguridad puede ser un desafío; las contraseñas triviales que no son seguras son susceptibles a ataques de seguridad.

Puedes usar Python para generar programáticamente seguro contraseñas Esto le permite ejecutar el script para generar contraseñas según sea necesario, sin preocuparse de que la contraseña sea segura.
3. Agregue un Proyecto Práctico a su Portafolio
Si es un programador principiante de Python, debe crear proyectos para perfeccionar sus habilidades y mostrar su experiencia en programación a través de un portafolio.
Además de un simple script de Python, puede personalizarlo aún más y publicarlo como un paquete PyPI. También puede agregar una interfaz gráfica de usuario utilizando bibliotecas como Tkinter, ¡y mucho más!
De esta manera, puede codificar su propio generador de contraseñas, para generar y administrar sus contraseñas de manera segura, en los distintos sitios.
The Random Module in Python: Is It Secure Enough?
Python módulo aleatorio también proporciona funciones que le permiten tomar muestras de un alfabeto y construir aparentemente secuencias aleatorias. El módulo aleatorio genera pseudoaleatorio secuencias. Analicemos lo que significa pseudoaleatoriedad.
El término pseudoaleatorio significa que aunque la secuencia pueda parecer aleatoria, en realidad es determinista.
Por lo tanto, si establece una semilla aleatoria, el módulo aleatorio generará la misma secuencia en su máquina y para cualquiera que ejecute el mismo script con la misma semilla.
Esta es la razón por la que no debe usar random para aplicaciones en las que la seguridad es importante, como las contraseñas.
Entonces, ¿cuándo puedes usar el random
¿módulo?
Para todas las aplicaciones que no son sensibles, puede usar el módulo aleatorio. Por ejemplo, hay tres conjuntos de cuestionarios, A, B y C en una clase de 40 estudiantes. Le gustaría asignar un conjunto particular a cada estudiante al azar.

En este caso, puedes usar random.choice()
dentro de una expresión de comprensión de lista, como se muestra a continuación:
import random
papers = ['A','B','C']
q_list = [random.choice(papers) for i in range(40)]
print(q_list)
Sample output:
['A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'B', 'A', 'C', 'C', 'B',
'C', 'A', 'B', 'A', 'A', 'C', 'C', 'A', 'A', 'A', 'C', 'A', 'C',
'A', 'C', 'B', 'B', 'B', 'B', 'A', 'A', 'B', 'B', 'A', 'A', 'B', 'B']
📑 Para llevar clave: Para simulaciones estadísticas, puede utilizar el
random
módulo; para aplicaciones delicadas, utilice elsecrets
módulo.
Python Secrets Module: Your Key to Secure Passwords
La propuesta de mejora de Python, PEP 506, aconseja a los desarrolladores que utilicen el secrets
módulo siempre que una secuencia deba ser criptográficamente segura, como contraseñas y tokens de seguridad.

EL secrets
el módulo tiene varias funciones integradas que le permiten hacer lo siguiente:
- Genere secuencias de números aleatorios que sean seguras para aplicaciones criptográficas.
- Usa funciones como
choice()
,randbits()
yrandbelow()
para generar números aleatorios seguros. - Genere tokens para restablecer una contraseña, URL temporales y más.
How to Code a Password Generator in Python [in 4 Steps]
Requisitos previos: debe tener Python 3.6 o una versión posterior instalada para codificar junto con este tutorial. También puede ejecutar el código de ejemplo en Editor de código Python en línea de Geekflare.
Paso 1: Importar los módulos necesarios
Como primer paso, importemos el secrets
módulo. Este módulo está integrado en la biblioteca estándar de Python, por lo que puede importarlo de la siguiente manera:
import secrets
Importemos también el código integrado de Python. string
módulo:
import string
Paso 2: Definir el alfabeto
El siguiente paso es definir el alfabeto. Alphabet denota el conjunto de todos los caracteres que consideraremos para la generación de contraseñas. Aquí, queremos que contenga lo siguiente: letras mayúsculas y minúsculas y caracteres especiales.

EL string
El módulo proporciona constantes de cadena que podemos usar para definir el alfabeto. Usaremos las siguientes constantes de cadena:
- EL
ascii_letters
es una concatenación de letras mayúsculas y minúsculas. - EL
digits
constante es la cadena que contiene los números del 0 al 9:'0123456789'
. - EL
punctuation
constante es la cadena de todos los caracteres especiales.
letters = string.ascii_letters
digits = string.digits
special_chars = string.punctuation
Finalmente, concatenemos las constantes de cadena anteriores para obtener el alfabeto.
alphabet = letters + digits + special_chars
Paso 3: fija la longitud de la contraseña; Generar una contraseña
Almacenemos la longitud de la contraseña en la variable, pwd_length
. En este ejemplo, la cadena de contraseña tiene una longitud de 12.
pwd_length = 12
▶️ Ahora, ejecute la siguiente celda de código para generar una contraseña:
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
print(pwd)
# Sample output
}2:Lz,1!Gvo@
El código anterior hace lo siguiente:
- La cadena de contraseña
pwd
es una cadena vacía inicialmente. - Sabemos que
secrets.choice(alphabet)
devuelve un carácter, muestreado al azar de laalphabet
. - Usamos la
join()
método para agregar este carácter alpwd
cuerda. Como no queremos ningún espacio en blanco entre los caracteres, especificamos que el separador sea''
. - Para repetir los pasos anteriores para generar una contraseña, usamos un bucle que se ejecuta tantas iteraciones como la longitud de la contraseña.
Paso 4: personalice sus contraseñas en función de las restricciones
Puede personalizar la generación de contraseñas verificando si cumple con ciertas restricciones.
Por ejemplo, verifiquemos si la cadena de contraseña generada de longitud 12 satisface las siguientes restricciones:
- La cuerda
pwd
debe contener al menos un carácter especial. - Debe contener al menos dos dígitos.
En el fragmento de código a continuación, puede modificar la condición de que el if
comprueba la declaración de acuerdo con las restricciones que defina.
while True:
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
if (any(char in special_chars for char in pwd) and
sum(char in digits for char in pwd)>=2):
break
print(pwd)
# Sample output
lX]{`y47pM4t
En la celda de código de arriba, usamos un bucle while infinito que se ejecuta mientras la cadena de contraseña pwd
no cumple con las restricciones. Cuando la contraseña generada, pwd
satisface las restricciones, salimos del bucle infinito.
Aquí está el código completo para el generador de contraseñas de Python:
# necessary imports
import secrets
import string
# define the alphabet
letters = string.ascii_letters
digits = string.digits
special_chars = string.punctuation
alphabet = letters + digits + special_chars
# fix password length
pwd_length = 12
# generate a password string
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
print(pwd)
# generate password meeting constraints
while True:
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
if (any(char in special_chars for char in pwd) and
sum(char in digits for char in pwd)>=2):
break
print(pwd)
Conclusión
¡Felicitaciones por terminar este tutorial! 🎉Ya has aprendido a codificar un generador de contraseñas en Python.
- Para generar contraseñas criptográficamente seguras, debe utilizar el secretos módulo y no al azar módulo.
- Una contraseña segura debe ser lo suficientemente larga y debe ser aleatoria, ya que no se puede predecir ni generar fácilmente. Debe ser una combinación de letras mayúsculas y minúsculas, dígitos y caracteres especiales.
- Python se envía con un incorporado cadena módulo que proporciona todas las letras, dígitos y caracteres especiales en las constantes letras_ascii, dígitos y puntuación, respectivamente. Utilice la sintaxis: cadena.constante para acceder a estas constantes de cadena.
- Puede utilizar las constantes anteriores para definir un alfabeto (un conjunto de todos los caracteres) para la generación de contraseñas.
- Una vez que haya definido un alfabeto, puede utilizar secretos.elección() para muestrear un carácter aleatorio de él. Para repetir esto durante la longitud de la contraseña, puede usar un bucle for.
▶️ A continuación, lea el lista de servidores web Python usar.