Génération de chaînes aléatoires de 5 caractères avec une duplication minimale
Question : Comment puis-je générer efficacement une chaîne avec exactement 5 caractères aléatoires avec la plus faible probabilité de duplication ?
Réponse :
Méthode 1 :
<code class="php">$rand = substr(md5(microtime()), rand(0, 26), 5);</code>
Méthode 2 :
<code class="php">$seed = str_split('abcdefghijklmnopqrstuvwxyz' . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . '0123456789!@#$%^&*()'); shuffle($seed); $rand = ''; foreach (array_rand($seed, 5) as $k) $rand .= $seed[$k];</code>
Méthode 3 :
<code class="php">function incrementalHash($len = 5) { $charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; $base = strlen($charset); $result = ''; $now = explode(' ', microtime())[1]; while ($now >= $base) { $i = (int)$now % $base; $result = $charset[$i] . $result; $now /= $base; } return substr(str_repeat($charset[0], $len) . $result, -$len); }</code>
Remarque : Pour les applications de haute sécurité, il est recommandé d'utiliser un logiciel plus robuste. générateur de nombres aléatoires.
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!