Générer un mot de passe en PHP

Subodh Poudel 30 janvier 2023
  1. Utilisez la fonction rand() pour sélectionner un index de tableau aléatoire afin de générer un mot de passe aléatoire en PHP
  2. Utilisez les fonctions openssl_random_pseudo_bytes() et bin2hex() pour générer un mot de passe aléatoire en PHP
  3. Utilisez les fonctions substr() et str_shuffle() pour générer un mot de passe aléatoire à partir d’une chaîne alphanumérique donnée en PHP
Générer un mot de passe en PHP

Nous allons introduire une méthode pour générer des mots de passe aléatoires en PHP à l’aide de la fonction rand(). Cette méthode utilise la combinaison des alphabets et des chiffres minuscules et majuscules pour former un mot de passe. La fonction rand() renvoie l’entier aléatoire, qui est l’index du tableau, pour choisir la combinaison de mot de passe.

Nous présenterons également une autre méthode pour générer des mots de passe aléatoires en PHP en utilisant les fonctions openssl_random_pseudo_bytes() et bin2hex().

Cet article démontrera une autre méthode pour générer des mots de passe aléatoires en PHP en utilisant les fonctions substr() et str_shuffle(). Cette méthode utilise également les valeurs alphanumériques fournies dans le programme pour former un mot de passe aléatoire.

Utilisez la fonction rand() pour sélectionner un index de tableau aléatoire afin de générer un mot de passe aléatoire en PHP

Nous pouvons utiliser la fonction rand() pour générer un mot de passe aléatoire en PHP. La fonction rand() renvoie un entier aléatoire de la plage des paramètres fournis. La fonction prend deux valeurs entières comme paramètres. Nous pouvons définir une chaîne d’alphabets et de chiffres à partir de laquelle nous pouvons combiner le mot de passe. Le nombre aléatoire indexe le tableau pour choisir des alphabets ou des nombres aléatoires. On peut boucler la fonction rand() pour créer le mot de passe de la longueur désirée.

Par exemple, créez une variable $comb et stockez la chaîne comprenant tous les alphabets minuscules et majuscules et les nombres de 0 à 10 sous la forme abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890. Créez un tableau $pass avec la fonction array(). Stockez la longueur de la chaîne $comb dans la variable $combLen. Créez une boucle for et parcourez la boucle huit fois. A l’intérieur de la boucle, utilisez la fonction rand() avec 0 et la variable $combLen comme paramètres et stockez la valeur dans la variable $n. Ensuite, affectez le $comb[$n] au tableau $pass. En dehors de la boucle, convertissez le tableau en chaîne à l’aide de la fonction implode().

Dans l’exemple ci-dessous, nous générons un mot de passe aléatoire à partir de la combinaison stockée dans la variable $comb. La fonction rand() prend un entier aléatoire de 0 à la longueur de la chaîne $comb. L’entier aléatoire est utilisé comme index pour récupérer la valeur alphanumérique aléatoire de la combinaison. La boucle s’exécute huit fois et sélectionne huit valeurs alphanumériques aléatoires, et forme enfin un mot de passe aléatoire. Consultez le Manuel PHP pour en savoir plus sur la fonction rand().

Exemple de code :

# php 7.x
<?php
 $comb = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
 $pass = array(); 
 $combLen = strlen($comb) - 1; 
 for ($i = 0; $i < 8; $i++) {
     $n = rand(0, $combLen);
     $pass[] = $comb[$n];
 }
 print(implode($pass)); 
?>

Production:

aPsQWlzh

Utilisez les fonctions openssl_random_pseudo_bytes() et bin2hex() pour générer un mot de passe aléatoire en PHP

Nous pouvons utiliser la fonction openssl_random_pseudo_bytes() pour générer une chaîne pseudo-aléatoire d’octets. Nous pouvons spécifier une valeur entière comme paramètre de la fonction pour définir la longueur du nombre souhaité d’octets à générer. La fonction bin2hex() convertit les données binaires en représentations hexadécimales. Nous pouvons utiliser cette fonction pour convertir la chaîne d’octets générée aléatoirement en représentation hexadécimale et former un mot de passe. Cette méthode génère le mot de passe aléatoire comprenant des valeurs alphanumériques.

Par exemple, créez une variable $bytes et affectez-la avec la fonction openssl_random_pseudo_bytes(). Spécifiez 4 comme paramètre de la fonction. Créez une autre variable, $pass, et écrivez-y la fonction bin2hex(). Spécifiez la variable $bytes dans la fonction. Imprimez la variable $pass à l’aide de l’instruction echo.

Dans l’exemple ci-dessous, le 4 dans la fonction openssl_random_pseudo_bytes() désigne le nombre d’octets à générer aléatoirement. La fonction bin2hex() convertit les octets en équivalent hexadécimal. Le mot de passe généré aléatoirement contient la longueur de 8 car la conversion hexadécimale de 4 octets de chaîne donne 8. Consultez le Manuel PHP pour en savoir plus sur la fonction bin2hex().

Exemple de code :

#php 7.x
<?php
$bytes = openssl_random_pseudo_bytes(4);
$pass = bin2hex($bytes);
echo $pass;
?>

Production:

ed203eef

Utilisez les fonctions substr() et str_shuffle() pour générer un mot de passe aléatoire à partir d’une chaîne alphanumérique donnée en PHP

Nous pouvons utiliser la méthode str_shuffle() pour mélanger aléatoirement la chaîne donnée. La fonction mélange la chaîne d’une combinaison d’alphabets minuscules et majuscules avec les nombres de 0 à 9. Ainsi, elle forme une permutation de tous les cas possibles. Nous pouvons utiliser la fonction substr() sur la chaîne mélangée pour sélectionner une partie de ses caractères. Ainsi, nous pouvons générer un mot de passe aléatoire.

Par exemple, créez une variable $comb et stockez-y la valeur de chaîne abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789. Utilisez str_shuffle() pour mélanger la variable $comb et la stocker dans la variable $shfl. Ensuite, utilisez la fonction substr() et la variable $shfl, 0 et 8 comme paramètres. Stockez la fonction dans une variable $pwd et imprimez la variable.

Dans l’exemple ci-dessous, nous utilisons le même ensemble de valeurs alphanumériques que la première méthode. Le mot de passe généré aléatoirement est formé à partir de ces valeurs alphanumériques. La fonction str_shuffle() mélange la valeur alphanumérique et crée une permutation aléatoire. Nous avons utilisé 0 et 8 dans la fonction substr() pour sélectionner les huit caractères du premier indice de la permutation mélangée. Ainsi, il génère un mot de passe aléatoire à huit chiffres.

Exemple de code :

#php 7.x
<?php
$comb = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$shfl = str_shuffle($comb);
$pwd = substr($shfl,0,8);
echo $pwd;
?>

Production:

jenZq3lY
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Article connexe - PHP Password