bin2hex

funkcja

Konwertuje ciąg bajtów na reprezentację szesnastkową (hex). Używana po random_bytes() do zamiany losowych bajtów na czytelny ciąg znaków.

bin2hex(string $string): string

bin2hex zamienia każdy bajt wejściowego ciągu na dwa znaki szesnastkowe (0-9, a-f). Wynik jest ciągiem złożonym wyłącznie z drukowalnych znaków ASCII, bezpiecznym do użycia w HTML, URL i bazie danych. Wynikowy ciąg ma dokładnie dwa razy więcej znaków niż wejście.

Najczęstsze zastosowanie to kodowanie losowych bajtów z random_bytes() do postaci tokenu:

<?php
declare(strict_types=1);

// Podstawowe użycie:
$bajty = "\x48\x65\x6c\x6c\x6f"; // "Hello" w bajtach
echo bin2hex($bajty); // wynik: 48656c6c6f

// Typowe zastosowanie — token kryptograficzny:
$token = bin2hex(random_bytes(32));
echo strlen($token); // wynik: 64 (32 bajty × 2)
echo $token;         // wynik: np. 3a7f9c... (64 znaki hex)

// Odwrotność: hex2bin()
$oryginal = hex2bin($token); // wróci do surowych 32 bajtów
echo strlen($oryginal);      // wynik: 32

// Generowanie bezpiecznego tokenu CSRF:
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
📘 Naucz się w lekcji →