Ferramentas
Guias

Gerador de sal e token aleatório

Cripto

Gera sais e tokens aleatórios criptograficamente seguros em hex ou Base64, com crypto.getRandomValues.

100% no cliente Sem backend
Nesta página

O que é um sal?#

Um sal é um pedaço de dados aleatórios que se mistura num processo de hashing de modo a que duas entradas idênticas produzam saídas diferentes. O seu trabalho é a singularidade, não o sigilo: um sal pode ficar em texto simples ao lado do hash que protege, e mesmo assim derrotar um ataque que depende de todos os usuárioes com a mesma senha fazerem hash para o mesmo resumo. Assim que cada senha tem o seu próprio sal, um atacante não consegue reutilizar uma tabela pré-computada sobre toda a base de dados — tem de recompute por entrada.

Esta página gera bytes aleatórios criptograficamente fortes com crypto.getRandomValues e entrega-lhos em três codificações: hex (dois caracteres por byte, a convenção para sais de senhas e tokens de integridade), base64 (mais compacto), e base64url (a variante segura para URLs e nomes de arquivo que troca +// por -/_ e larga o preenchimento =, usada em JWTs e URLs assinadas).

O mesmo primitivo duplica como um gerador geral de tokens aleatórios: chaves de API, valores nonce, ids opacos, e tokens de uso único são todos “alguns bytes aleatórios, codificados como texto”, que é exatamente o que isto produz.

Como usar#

  1. Defina o número de bytes. A predefinição de 16 (128 bits) é o tamanho padrão de sal; o campo aceita até 8192 para quando se precisa de um token mais longo.
  2. Escolha um formato: hex, base64 ou base64url.
  3. Clique em Gerar, depois Copiar. A linha de estado mostra quantos bits de entropia o resultado representa (bytes × 8), para que se confirme num relance que obteve o que pediu.

Principais funcionalidades#

  • Bytes aleatórios sem viés. Retirados de crypto.getRandomValues, o gerador criptograficamente forte do navegador.
  • Três codificações. hex para sais e checksums; base64 para tokens compactos; base64url para tudo o que viaje numa URL, nome de arquivo ou JSON.
  • Relatório honesto de entropia. A linha de estado afirma a contagem real de bits em vez do comprimento da string codificada, que é fácil de ler mal.
  • Até 8192 bytes. A mesma ferramenta serve um sal de 16 bytes e um blob de chave de 256 bytes.
  • Zero envios. A geração é local; os bytes aleatórios nunca são transmitidos.

Exemplo prático#

Gere 16 bytes em cada um dos três formatos. Uma extração de 16 bytes são 128 bits de entropia, e os comprimentos codificados são fixos independentemente dos valores aleatórios:

  • hex — 32 caracteres, p.ex. 7a4c9f1e0b8d2635c4a1e9f07b2d4861
  • base64 — 24 caracteres com preenchimento ==, p.ex. 8MDwarqMD7B594C5hCB1zQ==
  • base64url — 22 caracteres, preenchimento removido, p.ex. 8MDwarqMD7B594C5hCB1zQ

(Os valores acima ilustram a forma; a sua saída real difere a cada clique porque os bytes são frescamente aleatórios.) Suba para 32 bytes para um sal ou chave de 256 bits e os comprimentos crescem de forma determinística: 64 caracteres hex, 44 caracteres base64, 43 caracteres base64url. Essa relação fixa entre contagem de bytes e comprimento codificado é uma forma rápida de verificar com sanidade que gerou o tamanho pretendido.

FAQ#

Um sal precisa de ser secreto?#

Não. O propósito de um sal é a singularidade — garante que fazer hash da mesma senha duas vezes produz resumos diferentes. É guardado ao lado do hash em texto simples, e isso não enfraquece o esquema. O que tem de se manter secreto é a chave no HMAC ou a senha na encriptação, não o sal.

Quantos bytes devo gerar?#

16 bytes (128 bits) é o padrão para sais de senhas e a maioria dos tokens — torna as colisões acidentais efetivamente impossíveis. Para tokens de sessão ou qualquer coisa que se queira que dure muito tempo contra um atacante bem financiado, 32 bytes (256 bits) é uma margem confortável. Qualquer coisa para além disso é normalmente exagero a menos que um protocolo específico o exija.

Qual é a diferença entre base64 e base64url?#

Ambos codificam os mesmos bytes, mas base64 usa + e /, que partem URLs e nomes de arquivo, e preenche com =. base64url substitui esses por - e _ e larga o preenchimento, pelo que o resultado pode ser largado diretamente num caminho de URL, numa string de consulta, ou num nome de arquivo sem escape. Use base64url para JWTs, URLs assinadas e tokens opacos; use base64 simples quando a saída se fica por campos de dados.

Posso usar isto como chave de API?#

Sim. Gere 32 bytes em base64url e tem um token de 43 caracteres com 256 bits de entropia — mais do que suficiente para uma chave de API ou um token bearer de longa duração. Apenas certifique-se de que o copia imediatamente, já que o valor é gerado localmente e não pode ser recuperado mais tarde.