Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich sichere alphanumerische Zeichenfolgen für Verifizierungslinks in PHP generieren?
Eindeutige alphanumerische Zeichenfolgen für Verifizierungslinks generieren
Das Erstellen einer zufälligen, eindeutigen Zeichenfolge, die sowohl Buchstaben als auch Zahlen enthält, ist eine sichere Methode für Verifizierungslinks bei Kontoerstellungsprozessen. Hier sind zwei PHP-Funktionen, die für diesen Zweck verwendet werden können:
PHP 7 (empfohlen)
Die PHP 7-Standardbibliothek enthält die Funktion random_bytes(), die generiert kryptografisch sichere pseudozufällige Bytes.
$bytes = random_bytes(20); echo bin2hex($bytes);
PHP 5 (Veraltet)
Für PHP 5 wird empfohlen, openssl_random_pseudo_bytes() zum Generieren sicherer Token zu verwenden:
echo bin2hex(openssl_random_pseudo_bytes(20));
Zusätzliche Überlegungen
Um die Sicherheit zu erhöhen und das Erraten von Token einzuschränken, empfiehlt es sich, eine benutzerdefinierte Funktion zu erstellen, die bestimmte Anforderungen erfüllt Anforderungen. Hier ist eine umfassende Implementierung, die diese Anforderungen erfüllt:
function crypto_rand_secure($min, $max) { // Calculate and filter random bits $bytes = (int) (($max - $min) / 8) + 1; $bits = (int) log($max - $min, 2) + 1; $filter = (int) (1 << $bits) - 1; do { $rnd = hexdec(bin2hex(openssl_random_pseudo_bytes($bytes))); $rnd &= $filter; } while ($rnd > $range); return $min + $rnd; } function getToken($length) { // Define character set and calculate maximum length $codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; $max = strlen($codeAlphabet); // edited // Generate token of specified length $token = ""; for ($i = 0; $i < $length; $i++) { $token .= $codeAlphabet[crypto_rand_secure(0, $max-1)]; } return $token; }
Diese Funktion bietet eine sichere Alternative zu rand() und mt_rand und stellt sicher, dass generierte Token schwer zu erraten sind und die gewünschten Kriterien erfüllen.
Das obige ist der detaillierte Inhalt vonWie kann ich sichere alphanumerische Zeichenfolgen für Verifizierungslinks in PHP generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!