Maison  >  Article  >  développement back-end  >  Comment générer une chaîne aléatoire en utilisant PHP

Comment générer une chaîne aléatoire en utilisant PHP

藏色散人
藏色散人original
2019-01-29 15:26:5813583parcourir

Générez des chaînes alphanumériques aléatoires et uniques à l'aide de PHP.

Comment générer une chaîne aléatoire en utilisant PHP

Exemple :

EA070
aBX32gTf

Méthode 1 :

La première méthode est la méthode la plus simple à comprendre . Il peut être implémenté comme suit :

- stocke toutes les lettres possibles dans une chaîne.

- Génère un index aléatoire de 0 à la longueur de chaîne - 1.

- Imprime la lettre à cet index.

- Effectuez cette étape n fois (où n est la longueur de la chaîne souhaitée).

Le code du programme est le suivant :

<?php 
$n=10; 
function getName($n) { 
    $characters = &#39;0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&#39;; 
    $randomString = &#39;&#39;; 
  
    for ($i = 0; $i < $n; $i++) { 
        $index = rand(0, strlen($characters) - 1); 
        $randomString .= $characters[$index]; 
    } 
  
    return $randomString; 
} 
  
echo getName($n); 
?>

Sortie 1 :

3HDrSOvRIs

Sortie 2 :

lipHh

Méthode 2 : Utiliser les fonctions de hachage

PHP a quelques fonctions comme md5(), sha1() et hash() qui peuvent être utilisées selon certains algorithmes comme "sha1", "sha256", "md5" etc. ) pour hacher une chaîne. Toutes ces fonctions prennent une chaîne comme argument et génèrent une chaîne de hachage alphanumérique.

Utilisez la fonction rand() pour générer des nombres aléatoires.

Hashez-le en utilisant l'une des fonctions ci-dessus.

Programme 1 :

<?php 
$str=rand(); 
$result = md5($str); 
echo $result; 
?>

Sortie 1 :

2e437510c181dd2ae100fc1661a445d4

Sortie 2 :

256394010059991a71ea05e5d859d2be

Programme 2 :

<?php 
$str=rand(); 
$result = sha1($str); 
echo $result; 
?>

Sortie 1 :

6eadd9b2c4389d9b109b3b869f66aab5d8f9420a

Sortie 2 :

ca2d3c0993ab87e842d0a7a01f319aca6c587a87

Programme 3 :

<?php 
$str = rand(); 
$result = hash("sha256", $str); 
echo $result; 
?>

Sortie 1 :

2a41cbc8cc11f8c8d0eb54210fe524748b4def1c5b04fcf18c2d5972e24d11c2

Sortie 2 :

291144c1cbba4de0bf199d37ee265ac95cc2e44e80fd2642b22a6e8ef2f42a39

Remarque : Toutes les fonctions ci-dessus sont des fonctions de hachage, donc la longueur de la chaîne générée dépendra toujours de l'algorithme utilisé, mais pour l'algorithme elle restera toujours la même Changement. Ainsi, si vous souhaitez générer une chaîne de longueur fixe, vous pouvez tronquer la chaîne générée ou la concaténer avec une autre chaîne si nécessaire.

Méthode 3 :

Utilisez la fonction uniqid(). La fonction uniqid() en PHP est une fonction intégrée utilisée pour générer un identifiant unique basé sur l'heure actuelle (microsecondes). Par défaut, il renvoie une chaîne unique de 13 caractères.

Programme :

<?php  
$result = uniqid();   
echo $result; 
?>

Sortie 1 :

5bdd0b74e9a6c

Sortie 2 :

5bdd0bbc200c4

Remarque : ci-dessus Toutes les méthodes sont construites sur les fonctions rand() et uniqid(). Ces fonctions ne sont pas des générateurs aléatoires cryptographiquement sécurisés. Par conséquent, il est recommandé d’éviter ces méthodes si le degré de caractère aléatoire affecte la sécurité de l’application.

Méthode 4 :

Utilisez la fonction random_bytes(). (Cryptographiquement sécurisé) La fonction random_bytes() génère des octets pseudo-aléatoires cryptographiquement sécurisés, qui peuvent ensuite être convertis au format hexadécimal à l'aide de la fonction bin2hex().

Programme :

<?php  
$n = 20; 
$result = bin2hex(random_bytes($n)); 
echo $result; 
?>

Sortie 1 :

235aed08a01468f90fa726bd56319fb893967da8

Sortie 2 :

508b84494cdf31bec01566d12a924c75d4baed39

Cet article concerne PHP générant des caractères aléatoires ici est une introduction à la méthode des brochettes, j'espère qu'elle sera utile aux amis qui en ont besoin !

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!

Déclaration:
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