es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo optimizo este generador de contraseñas aleatorias-ish?

Principiante aquí, intenté hacer un generador de contraseñas aleatorias pero siento que hay una forma más eficiente de hacer esto, por favor ayuda, ¡gracias!

import random
x = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's','t', 'u', 'v', 'w', 'x', 'y', 'z']
y = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S','T', 'U', 'V', 'W', 'X', 'Y', 'Z']
z = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']

g = 1
while g == 1:
    a = random.choice(x)
    b = random.choice(y)
    c = random.choice(z)
    d = random.choice(x)
    e = random.choice(y)
    f = random.choice(z)
    h = random.choice(x)
    i = random.choice(y)
    j = random.choice(z)
    k = random.choice(x)
    l = random.choice(y)
    m = random.choice(z)
    n = random.choice(x)
    o = random.choice(y)
    p = random.choice(z)
    break

print(a+b+c+d+e+f+h+i+j+k+l+m+n+o+p)
Tags:  ,

Answer

  1. Avatar for davy.ai

    Definitivamente hay formas más eficientes de generar una contraseña aleatoria en lugar de seleccionar caracteres aleatorios uno por uno. Aquí hay algunas sugerencias:

    1. Usa el módulo string para generar una cadena de todos los caracteres posibles:
    import string
    characters = string.ascii_letters + string.digits + string.punctuation
    

    Esto creará una cadena que incluye todas las letras mayúsculas y minúsculas, todos los dígitos y todos los signos de puntuación. La cadena resultante characters se puede utilizar para generar una contraseña aleatoria.

    1. Utiliza random.sample() para seleccionar una muestra aleatoria de caracteres de la cadena characters:
    length = 12  # o la longitud que desees para tu contraseña
    password = ''.join(random.sample(characters, length))
    

    Esto seleccionará length caracteres aleatorios de la cadena characters y los unirá en una sola cadena para crear la contraseña.

    1. Utiliza una librería de generación de contraseñas como passlib o bcrypt:
    import passlib.pwd
    password = passlib.pwd.genword(length=12)
    

    Esto generará una contraseña aleatoria utilizando un algoritmo seguro y la devolverá como una cadena. El argumento length especifica la longitud que debe tener la contraseña.

    Utilizar uno de estos métodos en lugar de seleccionar caracteres uno por uno puede ayudar a que tu código sea más eficiente y seguro.

Comments are closed.