Como converter byte array em string hex em C#: guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Transformando bytes em strings e vice-versa: a magia do código hexadecimal em C#

\n\n

Você já se perguntou como o computador vê uma imagem, música ou até mesmo um arquivo de texto? Tudo isso é apenas uma sequência de bytes. Mas os bytes não são muito convenientes para mostrar ao usuário ou transmitir em uma URL. É aí que entra a string hexadecimal (hex string) — uma representação compacta e legível de dados binários.

\n\n

Imagine: você está escrevendo um módulo criptográfico, trabalhando com hashes, transmitindo dados binários via JSON ou registrando o conteúdo de um pacote. E então — puf! — você precisa transformar um array de bytes em uma string compreensível. Ou vice-versa, restaurar os bytes originais a partir de uma string hex. Parece familiar? Esta é uma das perguntas mais populares no Stack Overflow, e hoje vamos resolvê-la de uma vez por todas. Bem-vindo ao pythonlib.ru — seu guia no mundo da programação.

\n\n

Por que converter byte array em string hex?

\n\n

Vamos direto ao ponto. Um array de bytes (byte[]) são dados brutos: números de 0 a 255. É difícil para uma pessoa lê-los e, em alguns protocolos de texto (HTTP, JSON), eles podem até quebrar o formato. A string hex resolve ambos os problemas:

\n\n
    \n
  • Compacidade: um byte se transforma em dois caracteres (por exemplo, 255 → "FF").
  • \n
  • Segurança: a string contém apenas caracteres seguros (0-9, A-F).
  • \n
  • Conveniência: strings hex são fáceis de copiar, comparar e registrar.
  • \n
\n\n

Você provavelmente já viu essas strings em hashes MD5, SHA256 ou em tokens de autorização. Agora você sabe como isso funciona "por baixo dos panos".

\n\n

Método nº 1: O clássico — BitConverter (simples e rápido)

\n\n

A maneira mais popular em C# é usar a classe embutida BitConverter. Ela existe no .NET desde a primeira versão e funciona sem complicações desnecessárias.

\n\n

Conversão byte[] → string hex

\n\n
byte[] data = { 0x0F, 0x1A, 0xFF, 0x00 };\nstring hexString = BitConverter.ToString(data);\nConsole.WriteLine(hexString); // Saída: 0F-1A-FF-00
\n\n

Simples, certo? Mas há um detalhe: um hífen é inserido entre os pares de caracteres. Se o hífen te incomoda, é fácil removê-lo:

\n\n
string hexString = BitConverter.ToString(data).Replace("-", "");\nConsole.WriteLine(hexString); // Saída: 0F1AFF00
\n\n

Prós: mínimo de código, método embutido, fácil para iniciantes.
\nContras: hífen extra (precisa ser removido), pequena alocação de memória para strings intermediárias.

\n\n

Conversão inversa: string hex → byte[]

\n\n

Agora, a operação inversa é um pouco mais complicada. O BitConverter só funciona em uma direção. Mas não desistimos — vamos escrever um parser simples:

\n\n
public static byte[] HexStringToBytes(string hex)\n{\n    // Remove possíveis hífens e espaços\n    hex = hex.Replace("-", "").Replace(" ", "");\n    int length = hex.Length;\n    byte[] bytes = new byte[length / 2];\n    for (int i = 0; i < length; i += 2)\n    {\n        bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);\n    }\n    return bytes;\n}\n\n// Uso:\nstring hex = "0F1AFF00";\nbyte[] result = HexStringToBytes(hex);\n// result: { 0x0F, 0x1A, 0xFF, 0x00 }
\n\n

Este método usa Convert.ToByte com base 16 — confiável e legível. Mas para arrays grandes, Substring cria muitas strings temporárias. Para código de produção, é melhor usar Span<T> ou um loop com indexação de caracteres.

\n\n

Método nº 2: Moderno — Convert.ToHexString (.NET 5+)

\n\n

A partir do .NET 5, a Microsoft adicionou o tão esperado método Convert.ToHexString. Ele funciona rapidamente e sem hífens.

\n\n
byte[] data = { 0x0F, 0x1A, 0xFF, 0x00 };\nstring hexString = Convert.ToHexString(data);\nConsole.WriteLine(hexString); // Saída: 0F1AFF00
\n\n

Que beleza! Sem hífens, sem Replace. E para a operação inversa, existe o Co

Blogs

Book Recommendations