Se

Segredos em Python

{one: "1 exercício", many: "%{count} de exercícios", other: "%{count} exercícios"}

Sobre Segredos

Um conceito anterior discutiu o módulo random, que produz números pseudoaleatórios e ordenações pseudoaleatórias de listas.

O módulo secrets se sobrepõe ao random em algumas de suas funcionalidades, mas os dois módulos são projetados com prioridades bem diferentes.

  • random é otimizado para alto desempenho em modelagem e simulação, com geração de números pseudoaleatórios "boa o suficiente".
  • secrets é projetado para ser criptograficamente seguro para aplicações como hash de senhas, geração de tokens de segurança e autenticação de contas.

Mais detalhes sobre por que a adição do módulo secrets se mostrou necessária estão em PEP 506.

O módulo secrets é relativamente pequeno e simples, com métodos para gerar números inteiros aleatórios, bits, bytes, tokens ou uma entrada aleatória de uma sequência fornecida.

Para usar secrets, primeiro você precisa fazer o import dele:

>>> 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'

Se você estiver escrevendo aplicações sensíveis à segurança, com certeza vai querer ler a documentação completa, que traz mais dicas e exemplos.

Editar via GitHub O link abre em uma nova janela ou aba