Generar contraseña en Python

Namita Chaudhary 21 junio 2023
  1. Generar contraseña en Python
  2. Generar contraseña usando el módulo aleatorio en Python
  3. Generar contraseña usando el módulo de secretos en Python
  4. Conclusión
Generar contraseña en Python

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.

Artículo relacionado - Python String