Generar cadenas aleatorias en Python

Muhammad Waiz Khan 30 enero 2023
  1. Genere cadenas aleatorias en Python utilizando los métodos random.choice() y string.join()
  2. Genere una cadena aleatoria en Python usando el método uuid.uuid4()
  3. Genere una cadena aleatoria en Python usando el método StringGenerator.render_list()
Generar cadenas aleatorias en Python

En este tutorial, analizaremos varios métodos para generar cadenas aleatorias en Python. Las técnicas de generación de cadenas aleatorias se utilizan para generar nombres de usuario, contraseñas o nombres de archivo aleatorios, etc.

En algunos casos, necesitamos cadenas criptográficamente seguras, es decir, contraseña aleatoria o generación de claves. Solo las cadenas aleatorias serán suficientes si necesitamos usar las cadenas aleatorias como nombre de usuario y nombre de archivo aleatorios, etc. Analizaremos ambos tipos de generación de cadenas aleatorias en este tutorial, que se explica a continuación.

Genere cadenas aleatorias en Python utilizando los métodos random.choice() y string.join()

El método random.choice(seq) devuelve un elemento elegido al azar de la secuencia seq proporcionada como entrada. Y el método string.join(iterable) une los elementos del iterable utilizando el valor proporcionado de la string como separador y devuelve la cadena resultante como salida.

Para generar una cadena aleatoria en Python, necesitamos proporcionar la secuencia de caracteres a partir de la cual queremos que nuestro código genere la cadena aleatoria al método random.choice(). La secuencia de entrada puede constar de letras mayúsculas, alfabetos pequeños, dígitos y signos de puntuación, etc.

Podemos usar string.ascii_uppercase y string.ascii_lowercase para la secuencia de letras mayúsculas y minúsculas respectivamente, string.ascii_letters para ambos, string.digits para la secuencia de dígitos y string.punctuation para la secuencia de signos de puntuación en Python.

El siguiente código de ejemplo demuestra cómo generar el tipo requerido de cadena aleatoria usando los métodos random.choice() y string.join() en Python.

import string
import random

number_of_strings = 5
length_of_string = 8
for x in range(number_of_strings):
    print(
        "".join(
            random.choice(string.ascii_letters + string.digits)
            for _ in range(length_of_string)
        )
    )

Producción :

wOy5ezjl
j34JN8By
clA5SNZ6
D8K0eggH
6LjRuYsb

Para generar las cadenas aleatorias aseguradas criptográficamente, podemos usar el método random.SystemRandom(), que genera números aleatorios a partir de las fuentes del sistema operativo.

Código de ejemplo:

import string
import random

number_of_strings = 5
length_of_string = 8
for x in range(number_of_strings):
    print(
        "".join(
            random.SystemRandom().choice(string.ascii_letters + string.digits)
            for _ in range(length_of_string)
        )
    )

Producción :

PEQBU72q
xuwUInGo
asVWVywB
SAsMRjka
CrbIpuR6

Genere una cadena aleatoria en Python usando el método uuid.uuid4()

El método uuid.uuid4() genera y devuelve un UUID aleatorio. El UUID es un identificador único universal de 128 bits de longitud que se utiliza para identificar información en un sistema o red.

Este método es útil en caso de que queramos generar identificadores únicos y aleatorios a partir de cadenas aleatorias. El siguiente código de ejemplo demuestra cómo utilizar el método uuid.uuid4() para obtener una cadena aleatoria en Python.

import uuid

print(uuid.uuid4())

Producción :

440a93fe-45d7-4ccc-a6ee-baf10ce7388a

Genere una cadena aleatoria en Python usando el método StringGenerator.render_list()

StringGenerator().render_list() es una manera fácil de generar múltiples cadenas aleatorias en Python. El StringGenerator() toma la expresión regular como entrada, que define los caracteres que deben usarse para generar las cadenas aleatorias. En el método renderlist(len, unique=), len especifica la longitud de la lista de salida que contiene las cadenas aleatorias, y el argumento de palabra clave unique se puede establecer en True si queremos las cadenas de salida únicas.

El módulo StringGenerator debe instalarse primero para utilizar este método. El siguiente código de ejemplo demuestra cómo utilizar el método StringGenerator.render_list() para generar cadenas aleatorias en Python.

from strgen import StringGenerator

StringGenerator("[\l\d]{10}").render_list(3, unique=True)

Producción :

['m98xQHMlBI', 'V4O8hPMWfh', 'cBJk3XcGny']

Artículo relacionado - Python String