Sobre o Gerador de Token
O Gerador de Token cria tokens, chaves de API e secrets aleatórios e seguros direto no seu navegador, sem enviar nada para servidor algum. A aleatoriedade vem da Web Crypto API (window.crypto.getRandomValues), a mesma fonte criptográfica usada por bibliotecas profissionais. Você escolhe o formato (hexadecimal, Base64 URL-safe, alfanumérico ou alfanumérico com símbolos), o comprimento (8 a 128 caracteres), a quantidade (até 50) e um prefixo opcional como sk_ ou tok_.
Como funciona
Para cada token, geramos bytes verdadeiramente imprevisíveis com crypto.getRandomValues(new Uint8Array(n)) e os convertemos conforme o formato:
- Hexadecimal: cada byte vira dois caracteres via
byte.toString(16).padStart(2, '0'). Charset de 16 símbolos, ou seja, 4 bits de entropia por caractere. - Base64 URL-safe: aplicamos
btoasobre a string de bytes e trocamos+e/por-e_, removendo o padding=. Fica seguro para usar em URLs, headers e nomes de arquivo. - Alfanumérico / com símbolos: mapeamos cada byte para um charset (A-Za-z0-9, mais pontuação na variante com símbolos) usando rejeição por módulo — bytes acima do maior múltiplo do tamanho do alfabeto são descartados para que todos os caracteres tenham probabilidade idêntica, sem viés estatístico.
Em todos os casos cortamos a saída no comprimento exato pedido. A entropia é o que mede a força do token: cada caractere adicional multiplica o número de combinações possíveis. Um token alfanumérico de 32 caracteres tem cerca de 190 bits de entropia — inviável de adivinhar por força bruta.
Para que serve
- Gerar chaves de API e secrets para integrações, webhooks e ambientes de desenvolvimento.
- Criar tokens de sessão, CSRF, recuperação de senha ou confirmação de e-mail.
- Produzir salts e segredos para assinar JWT, HMAC ou criptografar dados.
- Definir senhas fortes para serviços, bancos de dados e contas de máquina.
- Popular variáveis de ambiente (
.env) com valores únicos por instância.
Por que não usar Math.random()
O Math.random() é um gerador pseudoaleatório rápido, porém previsível: seu estado interno pode ser reconstruído a partir de poucas saídas, permitindo que um atacante adivinhe tokens futuros. Para qualquer valor que proteja acesso — chaves, secrets, tokens de sessão — use sempre uma fonte criptograficamente segura como crypto.getRandomValues, que é alimentada pelo CSPRNG do sistema operacional. Esta ferramenta usa exclusivamente essa fonte e roda 100% no cliente: nenhum token gerado trafega pela rede.
Perguntas frequentes
Os tokens são realmente seguros e aleatórios?
Sim. Usamos window.crypto.getRandomValues, a fonte criptográfica padrão dos navegadores modernos, e aplicamos rejeição por módulo nos formatos com charset para eliminar viés. Não há uso de Math.random().
Algum token é enviado ou salvo em servidor?
Não. Toda a geração acontece localmente no seu navegador em JavaScript. Nada é transmitido, registrado ou armazenado em servidor. Você pode conferir no DevTools.
Qual comprimento devo escolher?
Para chaves de API e secrets, de 32 a 48 caracteres é uma escolha robusta. Tokens curtos (8 a 16) servem para identificadores não sensíveis. Quanto maior o comprimento, maior a entropia e mais difícil de adivinhar.
Para que serve o prefixo opcional?
Prefixos como sk_ ou pk_ ajudam a identificar o tipo e o ambiente da chave (secret/public, teste/produção) e facilitam a detecção automática de vazamentos em repositórios. Ele é apenas concatenado no início e não reduz a aleatoriedade da parte gerada.