Se

Secretos en Python

{one: "1 ejercicio", many: "%{count} ejercicios", other: "%{count} ejercicios"}

Acerca de Secretos

Un concepto anterior trataba el módulo random, que produce números pseudoaleatorios y ordenaciones pseudoaleatorias de arrays.

El módulo secrets se solapa con random en parte de su funcionalidad, pero ambos módulos están diseñados con prioridades muy diferentes.

  • random está optimizado para un alto rendimiento en el modelado y la simulación, con una generación de números pseudoaleatorios «suficientemente buena».
  • secrets está diseñado para ser criptográficamente seguro en aplicaciones como el hash de contraseñas, la generación de tokens de seguridad y la autenticación de cuentas.

En PEP 506 se ofrecen más detalles sobre por qué resultó necesaria la incorporación del módulo secrets.

El módulo secrets es relativamente pequeño y sencillo, con métodos para generar aleatoriamente números enteros, bits, bytes y tokens, o para elegir una entrada aleatoria de una secuencia dada.

Para usar secrets, primero tienes que hacer import de él:

>>> import secrets

# Returns n, where 0 <= n < 1000.
>>> secrets.randbelow(1000) 
577

# 32-bit integers.
>>> secrets.randbits(32) 
3028709440

>>> bin(secrets.randbits(32))
'0b11111000101100101111110011110100'

# Pick at random from a sequence.
>>> secrets.choice(['my', 'secret', 'thing']) 
'thing'

# Generate a token made up of random hexadecimal digits.
>>> secrets.token_hex() 
'f683d093ea9aa1f2607497c837cf11d7afaefa903c5805f94b64f068e2b9e621'

# Generate a URL-safe token of random alphanumeric characters.
>>> secrets.token_urlsafe(16) 
'gkSUKRdiPDHqmImPi2HMnw'

Si estás escribiendo aplicaciones sensibles a la seguridad, sin duda querrás leer la documentación completa, que ofrece más consejos y ejemplos.

Editar en GitHub El enlace se abre en una nueva ventana o pestaña