Start · Sprachen · PHP · Referenz · random_bytes

random_bytes

Funktion

Erzeugt kryptografisch sichere zufällige Bytes — der Standard für Tokens, Session-IDs und Salts.

seit PHP 7.0.0 Kategorie: crypto

Signatur

random_bytes(int $length): string

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

Typ
string
Beschreibung
Ein Binärstring mit $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;
a3f7c2e8...

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.