Best Practice zur Generierung eines zufälligen Tokens für das Vergessen des Passworts

Eine übliche Praxis zur Generierung eines zufälligen Tokens für eine "Vergessen des Passworts"-Funktion in PHP ist die Verwendung der integrierten Funktionen random_bytes und bin2hex. random_bytes generiert eine bestimmte Anzahl an cryptographisch sicheren zufälligen Bytes, und bin2hex konvertiert diese Bytes in einen hexadezimalen String. Das resultierende Token kann dann in einer Datenbank gespeichert und dem Benutzer per E-Mail gesendet werden. Eine Beispielimplementierung könnte wie folgt aussehen:

<?php

$token = bin2hex(random_bytes(32));
echo $token;

Das wird ein 64-Zeichen-hexadezimales Token generieren.

Eine weitere Möglichkeit ist die Verwendung der Funktion openssl_random_pseudo_bytes(), die eine sicherere Möglichkeit darstellt, ein zufälliges Token zu generieren und es in einen hexadezimalen String umzuwandeln.

<?php

$token = bin2hex(openssl_random_pseudo_bytes(32));
echo $token;

Das wird auch ein 64-Zeichen-hexadezimales Token generieren.

Es ist wichtig, auch die Ablaufzeit des Tokens zu berücksichtigen und beim Versuch des Benutzers, ihr Passwort zurückzusetzen, die Gültigkeit des Tokens zu überprüfen.