¿Cómo se crea una cadena aleatoria en Python?
Necesitaba que fuera un número y luego repetir el carácter hasta que termines, esto es lo que creé
def random_id(length):
number = '0123456789'
alpha = 'abcdefghijklmnopqrstuvwxyz'
id = ''
for i in range(0,length,2):
id += random.choice(number)
id += random.choice(alpha)
return id
Respuestas:
Generando cadenas de (por ejemplo) caracteres en minúscula:
Resultados:
fuente
randomword(length, source_alpha=string.lowercase)
yxrange(length)
, sin embargo.string.ascii_lowercase
os.urandom(length)
responde la pregunta original y @sth había leído la mente de OP incorrectamente.random.choices
sería más rápido.Dado que esta pregunta es bastante, eh, aleatoria, esto puede funcionar para usted:
fuente
str(uuid.uuid4())
si desea usarlo como una cadena.str(uuid.uuid4()).split("-")[0]
Salida:'4bcb6450'
fuente
random.choice
tampoco es seguro. Usarrandom.SystemRandom().choice()
o usaros.urandom()
directamente .lowercase
debe reemplazarse porascii_lowercase
Respuesta a la pregunta original:
Cita de: http://docs.python.org/2/library/os.html
fuente
Puede construir caracteres ascii aleatorios como:
Y luego construya una cadena más larga como:
fuente
''.join(map(chr, random.randint(0,256) for _ in xrange(len)))
Realmente no ha dicho mucho sobre qué tipo de cadena aleatoria necesita. Pero en cualquier caso, debería mirar en el
random
módulo.A continuación se pega una solución muy simple.
fuente
A veces, he querido cadenas aleatorias que sean semi-pronunciables, semi-memorables.
Luego,
Para evitar palabras de 4 letras, no establezca
length
4.Jim
fuente
la longitud debe ser <= len (string.letters) = 53. ejemplo de resultado
Disfrutar. ;)
fuente
Instale este paquete:
Y usa este código:
Más información sobre el método y otros parámetros están disponibles aquí.
fuente
En
python3.6+
puede utilizar elsecrets
módulo :Al probar la generación de
768bit
tokens de seguridad, encontré:random.choices()
-0.000246
segundossecrets.choice()
-0.003529
segundosLos
secrets
módulos son más lentos, pero fuera de la prueba, es lo que debería usar con fines criptográficos:fuente
Esta función genera una cadena aleatoria que consta de letras mayúsculas y minúsculas, dígitos, pasa el separador de longitud, no_of_blocks para especificar su formato de cadena
por ejemplo: len_sep = 4, no_of_blocks = 4 generará el siguiente patrón,
Donde, el separador de longitud agregará "-" después de 4 caracteres
ningún bloque generará el siguiente patrón de caracteres como cadena
si se necesita una sola cadena aleatoria, simplemente mantenga la variable no_of_blocks igual a 1 y len_sep para especificar la longitud de la cadena aleatoria.
por ejemplo: len_sep = 10, no_of_blocks = 1, generará el siguiente patrón, es decir. cadena aleatoria de longitud 10 ,
fuente
salida: FfxjmkyyLG5HvLeRudDS
fuente
intente importar el siguiente paquete desde una importación aleatoria *
fuente