openssl rand -hex 32
- Entrada
- 32 bytes em hex
- Saída esperada
- 64 caracteres, 256 bits
2 caracteres por byte.
gerar string aleatória hex base64 openssl rand
Nos formatos Hex, Base64, Base64URL e Base32 do gerador, o parâmetro é o número de bytes aleatórios. Abaixo, a tabela de tamanhos e a explicação de por que o sorteio de caracteres exige rejeição.
2 caracteres por byte.
Termina em um = porque 32 não é múltiplo de 3.
Sem preenchimento.
O tamanho comum de segredos TOTP.
32 x log2(62).
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.
Nenhum. A segurança vem do número de bytes aleatórios, e as duas codificações escrevem os mesmos bytes. O base64 só gasta menos caracteres para o mesmo valor.
Um UUID v4 tem 122 bits aleatórios em 36 caracteres e serve de identificador. Como chave de assinatura fica abaixo de 128 bits, e o formato revela a estrutura. Prefira 32 bytes em hex ou base64.
Em arquivos .env e variáveis de ambiente funciona sem aspas. Em URLs e cabeçalhos, use base64url, que não tem = nem os caracteres + e / que exigem escape.
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.