Pitón | Generar una cadena aleatoria de una longitud determinada

El problema de la generación de números aleatorios es bastante común, pero a veces tenemos aplicaciones que requieren que mejoremos eso y brindemos alguna funcionalidad para generar una cadena aleatoria de dígitos y alfabetos para aplicaciones como contraseñas. Analicemos ciertas formas en que esto se puede realizar en Python. Aquí usaremos la generación aleatoria de cadenas con letras mayúsculas y dígitos.

Método 1: generar una cadena aleatoria usando random.choices()

Este elecciones.aleatorias() La función de un módulo aleatorio puede ayudarnos a lograr esta tarea y proporciona una alternativa de una sola línea a un bucle completo que podría ser necesario para esta tarea en particular. Funciona con Python> v3.6.

  • Cadena.ascii_uppercase – Devuelve la cadena en mayúsculas.
  • Cadena.digitos – Devuelve la cadena con dígitos.
  • Puntuación.de.cadena – Devuelve la cadena con puntuaciones.
  • Cadena.ascii_letters – Devuelve la cadena que contiene varios casos.
  • Cadena.ascii_minúsculas – Devuelve la cadena en minúsculas.

Ejemplo 1: generación aleatoria de cadenas con letras mayúsculas

Python3




import> string> import> random> # initializing size of string> N> => 7> # using random.choices()> # generating random strings> res> => ''.join(random.choices(string.ascii_uppercase> +> > string.digits, k> => N))> # print result> print> (> 'The generated random string : '> +> str> (res))>

Producción :

The generated random string : 0D5YE91 

Ejemplo 2: Generar un aleatorio cadena de una longitud determinada en minúsculas

Python3




import> string> import> random> # initializing size of string> N> => 7> # using random.choices()> # generating random strings> res> => ''.join(random.choices(string.ascii_lowercase> +> > string.digits, k> => N))> # print result> print> (> 'The generated random string : '> +> str> (res))>

Producción:

The generated random string : ipxktny 

Ejemplo 3: generar una cadena aleatoria de una longitud determinada en mayúsculas y minúsculas

Python3




import> string> import> random> # initializing size of string> N> => 7> # using random.choices()> # generating random strings> res> => ''.join(random.choices(string.ascii_letters, k> => N))> # print result> print> (> 'The generated random string : '> +> str> (res))>

Producción:

The generated random string : ALpxvmI 

Método 2: generar una cadena aleatoria usando secrets.choice()

Podemos Genere cadenas aleatorias y contraseñas en Python usando secretos.elección(). Para números aleatorios criptográficamente más seguros, esta función del módulo secreto se puede utilizar ya que su algoritmo interno está estructurado de manera que genere números aleatorios menos predecibles.

Python3




import> secrets> import> string> # initializing size of string> N> => 7> # using secrets.choice()> # generating random strings> res> => ''.join(secrets.choice(string.ascii_uppercase> +> string.digits)> > for> i> in> range> (N))> # print result> print> (> 'The generated random string : '> +> str> (res))>

Producción :

The generated random string : T7HPKVR 

Acercarse :

Importe los módulos necesarios: aleatorio y de cadena.
Defina una función llamada generate_random_string que tome una longitud de parámetro para determinar la longitud de la cadena aleatoria a generar.
Utilice string.ascii_letters para obtener todas las letras ASCII en minúsculas y mayúsculas.
Utilice random.choice para elegir aleatoriamente caracteres de letras para la longitud dada de la cadena y concatenarlos usando .join().
Devuelve la cadena generada.
Utilice la función pasando la longitud deseada para generar una cadena aleatoria.

Python3




import> random> import> string> def> generate_random_string(length):> > # Get all the ASCII letters in lowercase and uppercase> > letters> => string.ascii_letters> > # Randomly choose characters from letters for the given length of the string> > random_string> => ''.join(random.choice(letters)> for> i> in> range> (length))> > return> random_string> # Example usage: generate a random string of length 10> random_string> => generate_random_string(> 10> )> print> (random_string)>

Producción

mFPltLThhj 

Complejidad del tiempo: O (n), donde n es la longitud de la cadena aleatoria deseada.

Espacio auxiliar: O(n), donde n es la longitud de la cadena aleatoria deseada.