Génération de chaînes alphanumériques aléatoires et uniques
Dans diverses applications, telles que les liens de vérification de compte, il est crucial de générer des chaînes uniques et aléatoires composées de chiffres et lettres. Voici comment y parvenir en PHP :
PHP 7
PHP 7 introduit la fonction random_bytes($length) pour fournir des octets pseudo-aléatoires cryptographiquement sécurisés. Un exemple :
$bytes = random_bytes(20); var_dump(bin2hex($bytes));
Cela produira un résultat tel que :
string(40) "5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9"
PHP 5 (obsolète)
Pour PHP 5, c'est Il est recommandé d'utiliser à la place openssl_random_pseudo_bytes(), qui génère des jetons cryptographiquement sécurisés. Une solution simple :
bin2hex(openssl_random_pseudo_bytes($bytes))
Approche plus sécurisée
Pour améliorer la sécurité, la fonction suivante peut générer une chaîne alphanumérique aléatoire et unique dans une plage de longueur spécifiée :
function getToken($length) { $codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; $max = strlen($codeAlphabet); // edited for ($i=0; $i < $length; $i++) { $token .= $codeAlphabet[crypto_rand_secure(0, $max-1)]; } return $token; }
Cette approche intègre crypto_rand_secure($min, $max) en remplacement de rand() ou mt_rand(), en utilisant openssl_random_pseudo_bytes pour garantir le caractère aléatoire.
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!