Générer des chaînes alphanumériques uniques pour les liens de vérification
La création d'une chaîne aléatoire et unique contenant à la fois des lettres et des chiffres est une méthode sécurisée pour les liens de vérification dans les processus de création de compte. Voici deux fonctions PHP qui peuvent être utilisées à cet effet :
PHP 7 (Recommandé)
La bibliothèque standard PHP 7 inclut la fonction random_bytes(), qui génère octets pseudo-aléatoires cryptographiquement sécurisés.
$bytes = random_bytes(20); echo bin2hex($bytes);
PHP 5 (Obsolète)
Pour PHP 5, il est recommandé d'utiliser openssl_random_pseudo_bytes() pour générer des jetons sécurisés :
echo bin2hex(openssl_random_pseudo_bytes(20));
Considérations supplémentaires
Pour améliorer la sécurité et limiter les devinettes de jetons, il est conseillé de créer une fonction personnalisée répondant à des exigences spécifiques. Voici une implémentation complète qui répond à ces exigences :
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; }
Cette fonction fournit une alternative sécurisée à rand() et mt_rand, garantissant que les jetons générés sont difficiles à deviner et satisfont aux critères souhaités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!