Como usar
- Escolha Codificar para transformar texto em hex ou Decodificar para transformar hex de volta em texto.
- Digite ou cole a entrada, ou abra um arquivo para ver os bytes dele em hex.
- Defina as opções: Maiúsculas, um Separador (Nenhum, Espaço ou Dois-pontos) e um Prefixo (Nenhum, 0x ou \x).
- Copie o resultado ou baixe-o como arquivo.
O que é hexadecimal (Base16)?
O hexadecimal usa dezesseis símbolos: os dígitos de 0 a 9 e as letras de A a F. Um dígito hex guarda quatro bits, então cada byte é escrito com exatamente dois dígitos, de 00 a FF. A saída tem o dobro do tamanho da entrada, mais do que em Base64 ou Base32, mas os limites entre os bytes continuam visíveis, e é por isso que depuradores, editores hexadecimais e ferramentas de rede exibem os dados dessa forma.
A RFC 4648 padroniza essa codificação como Base16, com alfabeto em maiúsculas e sem preenchimento. Na prática, as minúsculas são igualmente comuns, e os decodificadores, incluindo este, aceitam as duas formas.
Onde o hexadecimal é usado
- Hashes e chaves. Um digest SHA-256 tem 32 bytes, escritos como 64 dígitos hex. Chaves criptográficas, UUIDs e somas de verificação também costumam ser exibidos em hex.
- Endereços de hardware. Endereços MAC são seis bytes em hex, normalmente separados por dois-pontos. O separador Dois-pontos gera exatamente esse formato.
- Sequências de escape. Strings em C, Python e JavaScript aceitam
\xseguido de dois dígitos hex para representar um único byte, que é exatamente o que a opção de prefixo\xescreve. - Formatos da web. Cores CSS como
#FF8800são três bytes em hex, e a codificação percentual de URLs escreve os bytes como%seguido de dois dígitos hex.
Como decodificar hex para texto
O decodificador é tolerante com a formatação. Ele aceita dígitos maiúsculos e minúsculos, ignora espaços, quebras de linha, vírgulas, dois-pontos, ponto e vírgula e hífens, e remove os prefixos 0x, \x, % e &#x. A saída de xxd -p, endereços MAC, UUIDs, listas de 0x separadas por vírgula, escapes %XX e entidades hexadecimais do HTML podem ser colados como estão. Cada byte precisa de dois dígitos, por isso um número ímpar de dígitos é informado como erro. Os bytes são exibidos como texto na codificação de texto selecionada.
Para converter hex em outra codificação sem passar por texto, use Hex para Base64 ou Base64 para Hex.
Hexadecimal no código
# Python
'Hi'.encode().hex() # '4869'
bytes.fromhex('4869').decode() # 'Hi'
// Node.js
Buffer.from('Hi').toString('hex') // '4869'
Buffer.from('4869', 'hex').toString('utf8') // 'Hi'
# Shell
printf 'Hi' | xxd -p # 4869
Especificação
| Alfabeto | 0-9 A-F |
|---|---|
| Tamanho da saída | 2 caracteres por byte (200%) |
| Preenchimento | Nenhum |
| Padrão | RFC 4648, seção 8 |
| Diferencia maiúsculas e minúsculas | Não |
Exemplos
| Entrada (UTF-8) | Saída |
|---|---|
Hello, World! | 48656c6c6f2c20576f726c6421 |
Base64.is | 4261736536342e6973 |
你好 | e4bda0e5a5bd |
Perguntas frequentes
Como converter hex em texto?
Mude para Decodificar e cole o hex. Espaços, dois-pontos e prefixos 0x ou \x são removidos automaticamente, e os bytes são exibidos como texto UTF-8, a menos que você escolha outra codificação de texto.
O hex deve estar em maiúsculas ou minúsculas?
As duas formas representam os mesmos bytes. A RFC 4648 usa maiúsculas, enquanto muitas linguagens de programação exibem minúsculas. Ative Maiúsculas se o sistema de destino esperar letras maiúsculas; o decodificador aceita qualquer uma das formas.