Codificador e decodificador hexadecimal (Base16)

Converta texto, arquivos ou bytes brutos em hexadecimal e vice-versa. Escolha maiúsculas ou minúsculas, um separador e um prefixo 0x ou \x; o decodificador limpa para você os formatos hex mais comuns.

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Escolha Codificar para transformar texto em hex ou Decodificar para transformar hex de volta em texto.
  2. Digite ou cole a entrada, ou abra um arquivo para ver os bytes dele em hex.
  3. Defina as opções: Maiúsculas, um Separador (Nenhum, Espaço ou Dois-pontos) e um Prefixo (Nenhum, 0x ou \x).
  4. 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 \x seguido de dois dígitos hex para representar um único byte, que é exatamente o que a opção de prefixo \x escreve.
  • Formatos da web. Cores CSS como #FF8800 sã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

Alfabeto0-9 A-F
Tamanho da saída2 caracteres por byte (200%)
PreenchimentoNenhum
PadrãoRFC 4648, seção 8
Diferencia maiúsculas e minúsculasNão

Exemplos

Entrada (UTF-8)Saída
Hello, World!48656c6c6f2c20576f726c6421
Base64.is4261736536342e6973
你好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.

Por que o hex tem o dobro do tamanho do original?
Cada byte vira dois caracteres, um aumento de 100%. O Base64 acrescenta apenas cerca de 33%. Se o tamanho importar, converta os bytes com Hex para Base64.
Isso é o mesmo que converter um número para hex?
Não exatamente. Esta ferramenta codifica uma sequência de bytes, como os bytes de um texto. Para converter um único número inteiro, por exemplo 255 em FF, use o conversor de bases numéricas.