Como converter hex para Base64
- Cole o hex em Entrada · Hex. Espaços, quebras de linha, dois-pontos, hífens e os prefixos
0xou\xsão ignorados, e maiúsculas ou minúsculas tanto faz. - O Base64 aparece em Saída · Base64 enquanto você digita.
- Abaixo da saída, desmarque Preenchimento (=) se o destino quer Base64 sem preenchimento, e ajuste Quebra de linha para 64 (PEM) ou 76 (MIME) para obter a saída quebrada.
- Clique em Copiar saída, ou use o botão Base64 → Hex para conferir o resultado no sentido inverso. O Base64 para Hex é a mesma ferramenta ao contrário.
Digests de hash: hex ou Base64
Funções de hash devolvem bytes brutos. Ferramentas de linha de comando como sha256sum e md5sum imprimem esses bytes em hex, enquanto muitos protocolos esperam o mesmo digest em Base64. Estes são os digests dos cinco bytes hello:
| Hash | Hex (do sha256sum etc.) | Base64 |
|---|---|---|
| MD5 | 5d41402abc4b2a76b9719d911017c592 | XUFAKrxLKna5cZ2REBfFkg== |
| SHA-1 | aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d | qvTGHdzF6KLavt4PO0gs2a6pQ00= |
| SHA-256 | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 | LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ= |
Onde a forma Base64 é exigida:
- Subresource Integrity.
integrity="sha384-…"numa tag<script>ou<link>contém um digest em Base64. O gerador de hash SRI monta o atributo inteiro a partir de um arquivo. - Headers
Content-MD5. A RFC 1864 define o valor como o Base64 do digest MD5 de 16 bytes, e object stores que verificam uploads com ele rejeitam a forma hex. Veja MD5 em Base64. - Assinaturas e HMACs em requisições de API, que normalmente vão em Base64. O HMAC em Base64 os calcula nas duas formas.
- Chaves e segredos: uma chave de 32 bytes impressa por
openssl rand -hex 32vira o valor Base64 de 44 caracteres que muitos arquivos de configuração esperam.
Para o SHA-256 do seu próprio texto ou arquivo, o SHA-256 em Base64 pula a etapa do hex por completo.
O erro de sempre: codificar o texto hex
echo -n 2cf24d…9824 | base64 dá um resultado plausível, mas errado. Ele codifica os 64 caracteres ASCII do hex em vez dos 32 bytes que eles representam, e devolve 88 caracteres começando com MmNmMjRk. Esse valor decodifica de volta para o texto hex, então nada reclama até uma assinatura ou uma verificação de integridade falhar. Decodifique o hex antes:
echo -n 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 | xxd -r -p | base64
# LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=
printf hello | openssl dgst -sha256 -binary | base64
# same result, without going through hex at all
xxd -r -p transforma hex puro de volta em bytes. Ele vem com o Vim; em sistemas mínimos, instale o pacote xxd. No OpenSSL, é o -binary que faz o digest sair como bytes em vez de hex.
Hex para Base64 no código
import base64
base64.b64encode(bytes.fromhex("5d41402abc4b2a76b9719d911017c592")).decode()
# 'XUFAKrxLKna5cZ2REBfFkg=='
Buffer.from("5d41402abc4b2a76b9719d911017c592", "hex").toString("base64");
// 'XUFAKrxLKna5cZ2REBfFkg=='
As páginas de Python e Node.js cobrem as variantes URL-safe e sem preenchimento. Quando o digest vai para uma URL ou um JWT, converta o resultado com o Base64 para Base64URL.
Se a conversão falhar
- “número ímpar de dígitos hex”. Cada byte precisa de dois dígitos; um se perdeu na cópia. Confira as duas pontas da entrada.
- “caractere inesperado”. Há algo que não é hex na entrada, como um rótulo
sha256:ou o nome de arquivo que osha256sumimprime depois do digest. Remova; Mostrar leva direto ao ponto. - Offsets de um dump hex. Em
00000010: 4865 6c6c, o00000010é uma posição, não dados, mas é hex válido e será convertido. Use a saída dexxd -p, que não tem offsets.
Perguntas frequentes
Como converter um hash SHA-256 em hex para Base64?
Cole os 64 dígitos hex na entrada. O resultado tem 44 caracteres e termina em =; por exemplo, 2cf24dba…9824 vira LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=. Na linha de comando: echo -n HEX | xxd -r -p | base64.
Por que meu Base64 ficou com o dobro do tamanho esperado?
A string hex foi codificada como texto, então cada dígito hex virou um byte. Um digest SHA-256 feito assim dá 88 caracteres em vez de 44. Decodifique o hex para bytes antes, que é o que este conversor faz.
Quantos caracteres Base64 uma string hex gera?
Dois dígitos hex formam um byte, e cada 3 bytes viram 4 caracteres Base64, arredondando para um múltiplo de 4. 32 dígitos hex (MD5) dão 24 caracteres, 40 (SHA-1) dão 28, 64 (SHA-256) dão 44 e 128 (SHA-512) dão 88.
Dá para converter um UUID em Base64?
Dá, cole com os hífens. Os 16 bytes de 123e4567-e89b-12d3-a456-426614174000 viram Ej5FZ+ibEtOkVkJmFBdAAA==, 24 caracteres em vez de 36.