"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > PHP génère une méthode de chaîne alphanumérique aléatoire sûre

PHP génère une méthode de chaîne alphanumérique aléatoire sûre

Publié le 2025-04-18
Parcourir:137

How Can I Generate Secure Random Alphanumeric Strings in PHP?

générant des chaînes alphanumériques aléatoires

dans diverses applications, telles que les liens de vérification du compte, il est crucial de générer des chaînes uniques et aléatoires composées de nombres et de lettres. Voici comment vous pouvez y parvenir en php:

php 7

php 7 introduit la fonction random_bytes ($ longueur) pour fournir des octets pseudo-randoms sécurisés cryptographiquement. Un exemple:

$bytes = random_bytes(20);
var_dump(bin2hex($bytes));

cela produira une sortie comme:

string(40) "5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9"

php 5 (Obsolète)

Pour Php 5, il est recommandé d'utiliser à la place OpenSSL_RANDOM_PSEUDO_BYTES (), qui génère des jetons sécurisés cryptographiquement. 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 fonction aléatoire, une chaîne alphanique unique getToken ($ la longueur) { $ codealphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $ max = strlen ($ codealphabet); // édité pour ($ i = 0; $ i & lt; $ length; $ i) { $ token. = $ codealphabet [crypto_rand_secure (0, $ max-1)]; } retourner $ token; }

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;
}
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3