Signatur
Beschreibung
random_bytes() nutzt den Cryptographically Secure Pseudo-Random Number Generator (CSPRNG) des Betriebssystems: /dev/urandom unter Linux/macOS, CryptGenRandom unter Windows.
Verwende immer diese Funktion — niemals rand() oder mt_rand() — wenn das Ergebnis in einem sicherheitsrelevanten Kontext landet (Password-Reset-Token, API-Keys, Session-IDs).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $length Pflicht | int | — | Anzahl der zu erzeugenden Bytes. Für ein 256-Bit-Token: 32. |
Rückgabewert
$length zufälligen Bytes.Beispiele
Hex-Token für einen Password-Reset
<?php
$token = bin2hex(random_bytes(32));
// 64 Hex-Zeichen, 256 Bit Entropie
echo $token;
URL-safe Base64-Token
<?php
$raw = random_bytes(24);
$token = rtrim(strtr(base64_encode($raw), '+/', '-_'), '=');
// 32 URL-safe Zeichen, 192 Bit Entropie
// Wichtig · Fallstricke
Wirft eine \\Random\\RandomException (PHP 8.2+) bzw. \\Exception in älteren Versionen, wenn keine ausreichende Entropie verfügbar ist. In der Praxis passiert das praktisch nie.