Se

Secretos en Python

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

Acerca de Secretos

Un concepto anterior trató el módulo random, que produce números pseudoaleatorios y ordenamientos pseudoaleatorios de listas.

El módulo secrets se superpone 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 modelado y 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 dan más detalles sobre por qué fue necesaria la incorporación del módulo secrets.

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

Para usar secrets, primero debes 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 escribes 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 ventana o pestaña nueva