Génération d'une chaîne de caractères aléatoires de longueur fixe
Vous cherchez à développer une méthode permettant de produire efficacement une chaîne de caractères aléatoires de 5 caractères avec une duplication minimale probabilité. Considérez les approches suivantes :
$rand = substr(md5(microtime()),rand(0,26),5);
Cette approche utilise le hachage MD5 et renvoie 5 caractères à partir d'un hachage généré aléatoirement. string.
$seed = str_split('abcdefghijklmnopqrstuvwxyz' .'ABCDEFGHIJKLMNOPQRSTUVWXYZ' .'0123456789!@#$%^&*()'); shuffle($seed); // optional $rand = ''; foreach (array_rand($seed, 5) as $k) $rand .= $seed[$k];
Cette méthode génère un tableau de caractères et le mélange pour la randomisation. Il sélectionne 5 caractères et les ajoute à la chaîne.
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); }
Cette approche exploite le microtime pour générer un chaîne de hachage pseudo-aléatoire basée sur l'heure actuelle. Il produit des valeurs de hachage changeant progressivement. Notez que cette méthode peut être moins sécurisée pour les données sensibles.
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!