TLDR: Gerando Secret Key para o Django
Publicado em
Levante a mão quem nunca versionou a SECRET_KEY
do Django no início de um projeto e precisou gerar uma nova na hora de subir pra produção.
Este TLDR é um lembrete rápido de como você pode regerar uma secret key localmente, sem recorrer a sites na internet para gera-la para você.
Como o Django gera a secret key no início de um projeto, já existe esta função implementada em seu código e você pode acessá-la desta forma:
from django.core.management.utils import get_random_secret_key
print(get_random_secret_key())
Se não quiser nem ter o trabalho de abrir o shell do Python você pode executar direto do terminal:
python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
Atualização para Python 3.6+
Graças a interação de @ChristianHeimes e @pauloxnet na postagem do @aclark4life no twitter. Eu aprendi que a partir da versão 3.6 to Python a biblioteca secrets foi adicionada para ajudar com a geração de números aleatórios criptograficamente fortes para serem usados para gerenciamento de dados como senhas, autenticação de contas tokens de segurança entre outros.
É uma solução legal e com baterias inclusas pra gerar sua SECRET_KEY
sem ter o Django como dependência:
import secrets
print(secrets.token_urlsafe())
Você também pode usar pelo terminal:
python -c "import secrets; print(secrets.token_urlsafe())"
E caso tenha ficado curioso sobre como o Django faz isso hoje em dia, adivinha? Eles também usam esta solução. 🎉
Começando da versão de tag 3.1.3 isso é o que a função get_random_secret_key
faz por trás dos panos:
import secrets
length = 50
chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)'
secret_key = ''.join(secrets.choice(chars) for i in range(length))
print(secret_key)
Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional .