Generar contraseña en Python
- Generar contraseña en Python
- Generar contraseña usando el módulo aleatorio en Python
- Generar contraseña usando el módulo de secretos en Python
- Conclusión
A menudo escuchamos sobre violaciones de datos, amenazas cibernéticas y ataques cibernéticos en los sistemas; por ello, la seguridad y confidencialidad de los datos se han convertido en una parte muy importante de nuestras vidas. Ahora, una de las formas en que se pueden proteger los datos es asegurándolos con contraseñas.
En este artículo, discutiremos la generación de contraseñas en Python.
Generar contraseña en Python
Las contraseñas a menudo entran en escena cuando hablamos de seguridad. Ahora, como estas contraseñas se utilizan para proteger tantos datos importantes, deben ser difíciles de descifrar por los piratas informáticos.
Los atacantes a menudo intentan descifrar dichas contraseñas probando aleatoriamente diferentes combinaciones de caracteres y adivinando la contraseña correcta.
Cuando los humanos generamos contraseñas manualmente, a menudo son fáciles de descifrar. Muchos intentan combinar sus nombres con dígitos y símbolos que son pan comido para que los piratas informáticos los descifren.
Por lo tanto, estas contraseñas deben crearse de manera que no sean fáciles de descifrar. Tenemos algunos métodos de generación de contraseñas en Python que son difíciles de descifrar y fáciles de hacer.
Ahora, analicemos algunos de ellos en detalle.
Generar contraseña usando el módulo aleatorio en Python
El módulo aleatorio
de Python genera elementos aleatorios a partir de una lista. Además, utilizaremos el método choice()
del módulo random
de Python.
El método choice()
elige los elementos aleatorios de una lista. Por lo tanto, el método random.choice()
será nuestra trampa principal para generar una contraseña usando este método.
Sin embargo, ahora te debes estar preguntando de qué se trata esta lista de la que te hablamos. Entonces, la lista de la que elegirá el método random.choice()
contendrá todas las letras minúsculas y mayúsculas, dígitos y signos de puntuación.
Por lo tanto, las contraseñas que se generarán contendrán un orden aleatorio de estos caracteres que serían difíciles de descifrar.
Ahora, usaremos el módulo cadena
en Python para obtener todas las letras minúsculas, mayúsculas, dígitos y signos de puntuación. El método ascii.lowercase
del módulo string
se usa para obtener todas las letras minúsculas del alfabeto inglés, y ascii.uppercase
se usa para obtener todas las letras mayúsculas del alfabeto inglés.
Para obtener los dígitos y los símbolos de puntuación, usamos los métodos string.digits
y string.punctuation
del módulo string
en Python, respectivamente.
Veamos el código para generar una contraseña usando los módulos random
y string
en Python.
import random
import string
def passwordGen(length):
lower = string.ascii_lowercase
upper = string.ascii_uppercase
digits = string.digits
symbols = string.punctuation
comb = lower + upper + digits + symbols
result_str = "".join(random.choice(comb) for i in range(length))
print("Password of length ", length, "is:", result_str)
passwordGen(12)
passwordGen(10)
passwordGen(5)
Producción :
Password of length 12 is: ^)n34W6~0Wdx
Password of length 10 is: g&#'G-T\vn
Password of length 5 is: &g/S3
Por lo tanto, como puede ver en el resultado anterior, tenemos tres contraseñas de diferentes longitudes, que son únicas y difíciles de descifrar.
Sin embargo, hemos importado el módulo aleatorio
y cadena
en el ejemplo de código. Luego, hicimos una función passwordGen
que toma una longitud como parámetro e imprime una contraseña de esa longitud específica.
Dentro de la función, hemos almacenado todas las letras, dígitos y símbolos en diferentes variables. Ahora, hemos combinado todos estos caracteres en una sola cadena y la hemos almacenado en una variable peine
.
Ahora, hemos usado random.choice(comb)
para elegir aleatoriamente caracteres de la cadena comb
para cada índice hasta la longitud especificada y luego imprimir los resultados.
Generar contraseña usando el módulo de secretos en Python
Se utiliza un módulo más en Python para generar números aleatorios criptográficos sólidos por motivos de seguridad. Este módulo se conoce como módulo secretos
; sin embargo, este módulo está disponible desde la versión 3.6 de Python y más.
Este módulo de secretos
proporciona la fuente de aleatoriedad más segura de un sistema operativo; por lo tanto, las contraseñas generadas son más seguras y efectivas. Ahora analicemos el programa para generar la contraseña utilizando el módulo secretos
de Python.
El programa es similar al que hemos comentado anteriormente, pero usar el módulo de secretos
es más seguro y efectivo para proteger nuestros sistemas.
import string
import secrets
def passwordGen(len):
combination = string.ascii_letters + string.digits + string.punctuation
password = "".join(secrets.choice(combination) for i in range(len))
print("Password is: ", password)
passwordGen(12)
passwordGen(8)
Producción :
Password is: Gz!*j3p4xd$Z
Password is: 5#;CSIa7
Por lo tanto, como puede ver en la salida, hemos creado un método passwordGen
en el que tenemos una variable combinación
que combina todas las letras, dígitos y signos de puntuación para crear una contraseña utilizando los métodos de la cadena
módulo en Python.
Luego, usamos el método secrets.choice(combination)
y le dimos todos los caracteres para elegir para hacer una contraseña de una longitud determinada de len
y luego imprimirla. Por lo tanto, realizamos la generación de contraseñas en Python utilizando el módulo secretos
.
Conclusión
En este artículo, discutimos cómo generar contraseñas en Python. Dado que la seguridad es un requisito importante en esta era, la generación de contraseñas seguras y protegidas es muy importante.
Para ello, Python cuenta con dos módulos, a saber, aleatorio
y secretos
, que ayudan a generar contraseñas difíciles y no tan fáciles de descifrar. Sin embargo, ambos módulos toman la ayuda del módulo cadena
para tomar una combinación de caracteres para elegir.
Sin embargo, el módulo de secretos
se implementa a partir de la versión 3.6 de Python, pero aún se considera una forma más segura de generar contraseñas.