Maison > développement back-end > tutoriel php > Comment générer des chaînes aléatoires de 5 caractères avec une duplication minimale ?

Comment générer des chaînes aléatoires de 5 caractères avec une duplication minimale ?

DDD
Libérer: 2024-10-19 15:32:02
original
892 Les gens l'ont consulté

How to Generate Random 5-Character Strings with Minimal Duplication?

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>
Copier après la connexion
  • Cette méthode utilise le hachage MD5 du microtime actuel pour générer un grand nombre aléatoire, puis extrait 5 caractères d'une position aléatoire.

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>
Copier après la connexion
  • Cette méthode mélange un tableau de tous les caractères possibles, puis sélectionne 5 caractères au hasard. C'est moins efficace pour les grands jeux de caractères.

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>
Copier après la connexion
  • Cette méthode convertit le microtime actuel en une valeur de hachage incrémentielle. Bien qu'il soit moins aléatoire, il convient aux cas où l'unicité est cruciale, mais où la prévisibilité est moins importante.

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal