HS256 em base64url
- Entrada
- 32 bytes
- Saída esperada
- 43 caracteres, 256 bits
Mínimo da RFC 7518 para HS256.
gerar jwt secret hs256
Escolha JWT HS256, HS384 ou HS512 no gerador: o tamanho já vem no mínimo da RFC 7518 e você só decide a codificação. O resultado traz o valor pronto para a variável JWT_SECRET.
Mínimo da RFC 7518 para HS256.
Dois caracteres por byte.
48 é múltiplo de 3, então não há preenchimento.
Em base64 padrão seriam 88, com dois =.
Mesmos 32 bytes em base64 padrão.
Use pelo menos 32 bytes aleatórios (256 bits): a RFC 7518, seção 3.2, diz que a chave HMAC deve ter o tamanho da saída do hash ou mais, ou seja, 256 bits para HS256, 384 para HS384 e 512 para HS512. Uma frase curta ou palavra de dicionário como segredo pode ser quebrada por força bruta offline a partir de um único token.
Pode funcionar, mas é arriscado: senhas têm bem menos entropia que 256 bits e podem ser descobertas por força bruta a partir de um token. Gere bytes aleatórios com o gerador.
Depende da biblioteca. Algumas aceitam texto e usam os bytes UTF-8 do texto; outras pedem um buffer. O importante é que quem assina e quem verifica usem exatamente o mesmo tratamento.
Só se o segredo também for maior. Com 32 bytes de entropia, o HS512 não passa de 256 bits de segurança. O que protege é o segredo, não o nome do algoritmo.
Bytes aleatórios em hexadecimal: 2 caracteres por byte. 32 bytes dão 64 caracteres e 256 bits.
openssl rand -hex 32python3 -c "import secrets; print(secrets.token_hex(32))"Escolha as variáveis e copie o bloco. Cada geração sorteia valores novos; valores com $, # ou espaço saem entre aspas.
Ligue pelo menos uma variável.
Para produção, prefira gerar localmente com o comando do terminal. Qualquer segredo digitado ou copiado de uma página web deve ser tratado como exposto se você não confia no dispositivo ou nas extensões do navegador. Nada aqui é enviado ou guardado.