Maison > développement back-end > Problème PHP > Introduction à quatre méthodes de génération d'identifiants uniques en php

Introduction à quatre méthodes de génération d'identifiants uniques en php

王林
Libérer: 2023-03-09 12:52:01
avant
19697 Les gens l'ont consulté

Introduction à quatre méthodes de génération d'identifiants uniques en php

Il existe de nombreux scénarios dans lesquels des identifiants uniques sont utilisés dans le travail, tels que des fichiers de cache temporaires, des variables temporaires, des codes de sécurité temporaires, etc.

La fonction uniqid() génère un identifiant unique basé sur l'heure actuelle en microsecondes. Étant donné que la génération d’un identifiant unique est liée à un moment subtil, le caractère unique de l’identifiant généré est très fiable.

La chaîne renvoyée par l'ID unique généré comporte 13 caractères par défaut. Si elle est combinée avec la fonction MD5(), la fiabilité de l'ID unique généré sera plus élevée que celle de l'ID unique généré. ID aléatoire. L'avantage est que le tri peut être réalisé, notamment pour certaines valeurs qui doivent être stockées dans la base de données. Bien entendu, des nombres aléatoires peuvent également être ajoutés ici.

Ce qui suit présente principalement 4 méthodes de génération d'identifiants uniques :

1 md5(time().mt_rand(1,1000000))

Remarque : cette méthode a Là. Il y aura une certaine probabilité de duplication

2. La fonction intégrée PHP uniqid()

la fonction uniqid() génère un identifiant unique basé sur l'heure actuelle subtile.

  echo uniqid();
  echo uniqid();
  echo uniqid();
 OUTPUT:
    5a4b62dd4aeea
    5a4b62dd4aff7
    5a4b62dd4b069
Copier après la connexion

Il y a une phrase dans le manuel de référence de w3school : "Parce qu'il est basé sur l'heure du système, l'ID généré par cette fonction n'est pas optimal. Si vous devez générer un ID absolument unique, veuillez utiliser le md5 () fonction."

(Tutoriel vidéo gratuit : Tutoriel vidéo php)

3 Combinez la fonction md5() pour générer un identifiant unique

     echo md5(uniqid());
OUTPUT:
    0ac3d6e99b7f5290c93d730eaf9d7d94
Copier après la connexion

4. go Processing, le cas officiel

public function create_guid($namespace = '') { 
      static $guid = '';
      $uid = uniqid("", true);
      $data = $namespace;
      $data .= $_SERVER['REQUEST_TIME'];
      $data .= $_SERVER['HTTP_USER_AGENT'];
      $data .= $_SERVER['LOCAL_ADDR'];
      $data .= $_SERVER['LOCAL_PORT'];
      $data .= $_SERVER['REMOTE_ADDR'];
      $data .= $_SERVER['REMOTE_PORT'];
      $hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));
      $guid = '{' .
          substr($hash, 0, 8) .
          '-' .
          substr($hash, 8, 4) .
          '-' .
          substr($hash, 12, 4) .
          '-' .
          substr($hash, 16, 4) .
          '-' .
          substr($hash, 20, 12) .
          '}';
      return $guid;
     }
Copier après la connexion

renvoie des résultats similaires : E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7

Recommandations associées : tutoriel php

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!

Étiquettes associées:
source:csdn.net
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