Para gerar tokens seguros, use uma fonte criptografica de aleatoriedade, escolha tamanho suficiente, defina expiracao e armazene o valor com cuidado. O Token generator ajuda a criar tokens aleatorios no navegador para testes, documentacao e uso local.
Tokens parecem simples, mas erros pequenos podem abrir brechas: usar gerador fraco, repetir token, deixar segredo sem expiracao ou registrar o valor completo em logs.
1. Nao use Math.random() para tokens sensiveis
Math.random() nao foi criado para seguranca. Ele pode servir para sorteios simples, simulacoes e efeitos visuais, mas nao para tokens que protegem acesso.
Para tokens sensiveis, use APIs criptograficas:
crypto.getRandomValuesno navegador;crypto.randomBytesno Node.js;- bibliotecas confiaveis no backend;
- servicos de segredo quando a infraestrutura exigir.
O Token generator usa crypto.getRandomValues, que e uma escolha adequada para gerar bytes aleatorios no browser.
2. Escolha o formato conforme o destino
Nem todo token precisa ter o mesmo formato.
| Destino | Formato recomendado | |---|---| | URL | Base64URL | | Logs e exemplos tecnicos | Hexadecimal | | Interface para usuario digitar | Alfanumerico | | Header HTTP | Base64URL ou hexadecimal | | Banco de dados | Hexadecimal ou Base64URL |
O erro comum e gerar um token com caracteres que precisam de escape e depois usar em URL sem codificar. Isso pode quebrar links e dificultar debug.
3. Use comprimento suficiente
Tokens muito curtos sao mais faceis de adivinhar e colidir. Se o token protege uma acao sensivel, aumente o tamanho.
Exemplos:
- token visual de teste: 12 a 16 caracteres;
- identificador temporario: 16 a 24 caracteres;
- link privado: 24 a 32 caracteres;
- token de API: 32 a 64 caracteres;
- segredo de alto risco: 64+ caracteres.
Comprimento nao substitui validacao, mas reduz muito a chance de descoberta por tentativa.
4. Defina expiracao
Token sem expiracao vira divida de seguranca. Mesmo que ele seja forte, pode vazar por print, log, historico de navegador, copia em chat ou repositorio.
Use expiracao para:
- reset de senha;
- confirmacao de e-mail;
- links de convite;
- acesso temporario;
- downloads privados;
- operacoes administrativas.
Quanto mais sensivel a acao, menor deve ser a validade.
5. Armazene tokens como segredos
Se o token permite acesso, trate como senha. Evite salvar o valor puro quando nao for necessario. Uma abordagem comum e salvar apenas o hash do token no banco e comparar hashes na validacao.
Boas praticas de armazenamento:
- salve hash do token quando possivel;
- nunca exponha token completo depois da criacao;
- mascare em telas administrativas;
- nao registre token completo em log;
- permita revogacao;
- registre ultimo uso.
6. Separe tokens por finalidade
Nao reutilize o mesmo token para API, webhook, convite e reset de senha. Tokens diferentes permitem revogar um acesso sem quebrar todos os outros.
Exemplo ruim:
``txt TOKEN_GLOBAL=um-token-para-tudo ``
Exemplo melhor:
``env WEBHOOK_SECRET=... API_READ_TOKEN=... INVITE_SIGNING_SECRET=... ``
Separar responsabilidades melhora auditoria e reduz impacto em caso de vazamento.
7. Nao confunda token com hash
Token e um segredo aleatorio. Hash e o resultado de uma funcao que transforma dados em um resumo. Um hash de texto previsivel nao e necessariamente um bom token.
Se voce precisa criar assinatura de mensagem, use Hmac generator. Se precisa verificar integridade de texto, use Hash text. Se precisa de um segredo aleatorio, use Token generator.
8. Evite tokens reais em documentacao
Documentacao deve usar tokens falsos e claramente invalidos. Isso reduz risco de alguem copiar um segredo real sem perceber.
Use exemplos como:
``txt TOKEN_EXEMPLO_NAO_USAR_EM_PRODUCAO ``
ou gere um token descartavel e deixe claro que ele e apenas ilustrativo.
Checklist rapido de seguranca
Antes de usar um token em producao, responda:
- O token foi gerado com fonte criptografica?
- O tamanho e suficiente?
- Ele tem expiracao?
- Pode ser revogado?
- O valor completo aparece em logs?
- O banco guarda hash ou valor puro?
- O token tem escopo limitado?
- Existe processo de rotacao?
Se qualquer resposta for incerta, revise o fluxo antes de publicar.
Perguntas frequentes
Token Base64URL e seguro?
O formato Base64URL nao define a seguranca por si so. Ele apenas representa bytes aleatorios de forma amigavel para URL. A seguranca depende da aleatoriedade e do tamanho.
Posso usar token gerado no navegador?
Para testes e usos locais, sim. Para producao, prefira gerar no backend para controlar armazenamento, expiracao, auditoria e revogacao.
Token precisa expirar?
Se ele libera acesso ou confirma uma acao sensivel, sim. Expiracao reduz o impacto de vazamentos.
Devo salvar token puro no banco?
Evite quando possivel. Salvar hash do token e mais seguro, porque um vazamento de banco nao revela imediatamente os tokens ativos.
Como gero um token agora?
Use o Token generator, escolha um formato e gere um valor com tamanho adequado ao risco.