W3docs

hex2bin()

A função hex2bin() converte uma string hexadecimal em sua representação binária. Veja a sintaxe, valor de retorno e exemplos práticos.

A função PHP hex2bin() decodifica uma string de dígitos hexadecimais de volta para os bytes brutos que eles representam. É o inverso exato de bin2hex(): enquanto bin2hex() transforma cada byte em dois caracteres hexadecimais, hex2bin() lê esses pares de caracteres e reconstrói a string de bytes original. Disponível desde o PHP 5.4, sua sintaxe é a seguinte.

Esta página abrange a sintaxe, o valor de retorno, um exemplo prático de decodificação, como lidar com entradas inválidas com segurança e uma operação de ida e volta com bin2hex().

Sintaxe

string|false hex2bin ( string $string )

A função recebe um parâmetro obrigatório, $string, a string hexadecimal a ser convertida. Cada par de caracteres hexadecimais (como 48) mapeia para um byte (H). Como dois caracteres formam um byte, o comprimento da entrada deve ser par.

Valor de retorno

hex2bin() retorna a string binária decodificada em caso de sucesso, ou false em caso de falha. Ela falha (e emite um aviso) quando a entrada tem comprimento ímpar ou contém caracteres que não são dígitos hexadecimais válidos (0-9, a-f, A-F). Validar a entrada primeiro — como mostrado abaixo — permite evitar esses avisos.

Veja um exemplo de como usar a função hex2bin():

Decodificando uma string hexadecimal

php— editable, runs on the server

Neste exemplo, temos uma variável string $hex_string contendo uma string hexadecimal. Usamos a função hex2bin() para converter a string hexadecimal em sua representação binária.

A saída deste código será:

Hello World

Como você pode ver, a função hex2bin() converteu a string hexadecimal em sua representação binária, que é a string "Hello World".

Validando a entrada antes de decodificar

A função hex2bin() retorna false se a string de entrada contiver caracteres hexadecimais inválidos. Para lidar com essa situação de forma segura e evitar avisos, você pode validar a entrada primeiro com ctype_xdigit() (que verifica se todos os caracteres são dígitos hexadecimais):

php— editable, runs on the server

Neste exemplo, a variável $invalid_hex_string contém uma string hexadecimal com comprimento ímpar (e, portanto, inválida). Usamos ctype_xdigit() para verificar se a string contém apenas caracteres hexadecimais válidos antes de chamar hex2bin(). Se a validação falhar, exibimos uma mensagem de erro; caso contrário, convertemos a string para binário com segurança.

Operação de ida e volta com bin2hex()

hex2bin() e bin2hex() são inversos, portanto codificar uma string e depois decodificá-la retorna o valor original. Isso é útil quando você precisa armazenar ou transmitir dados binários como ASCII simples (por exemplo, em uma URL ou em uma coluna de texto) e recuperá-los posteriormente:

<?php
$original = "Hello World";

$hex = bin2hex($original);   // 48656c6c6f20576f726c64
echo $hex . "\n";

$decoded = hex2bin($hex);    // Hello World
echo $decoded . "\n";

var_dump($original === $decoded); // bool(true)
?>

A saída deste código será:

48656c6c6f20576f726c64
Hello World
bool(true)

Como o valor decodificado é idêntico ao original, var_dump() retorna bool(true).

Quando usar

Use hex2bin() sempre que receber dados que foram codificados em hexadecimal e precisar dos bytes brutos de volta — casos comuns incluem a leitura de hashes ou chaves armazenados como strings hexadecimais, a decodificação de valores produzidos por bin2hex() e a reconstrução de payloads binários (imagens, blobs criptografados) que foram transportados como texto.

Funções relacionadas

  • bin2hex() — converte uma string binária em sua representação hexadecimal (o inverso de hex2bin()).
  • dechex() — converte um inteiro decimal em uma string hexadecimal.
  • hexdec() — converte uma string hexadecimal em um inteiro decimal.

Prática

Prática
O que a função hex2bin() do PHP faz?
O que a função hex2bin() do PHP faz?
Was this page helpful?