Bonjour,

J'utilise le code suivant pour générer de manière sécurisée 4 chiffres aléatoires qui seront affichés dans l'image d'un captcha :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 
/*** Script pour générer 4 chiffres aléatoires qui seront utilisés dans un captcha ***/
 
$texte = "";
 
// On génère une séquence aléatoire
$random = openssl_random_pseudo_bytes(64).md5("hI4QVLrluGbDKbVtpa4l".time()."Z0");
 
// On hash avec SHA512 la séquence aléatoire avec d'autres paramètres
$hash = hash("SHA512","hiJ9DEZsF3hNk54VnkmM".mt_rand(0,pow(10,6)).time().$random);
 
// On prends les 4 premiers chiffres que l'on rencontre en parcourant le hash ($hash)
for($i=0;strlen($texte)<=3;$i++)
{
  if(is_numeric($hash[$i]))
  {
    $texte .= $hash[$i]; // On ajoute à $texte le chiffre
  }
}
 
// On affiche les 4 chiffres à l'écran (qui peuvent être utilisés dans l'image d'un captcha par exemple
echo $texte;
 
// $texte peut contenir par exemple : 8916
 
?>
http://pastebin.com/uUuRR3vn

Pensez-vous que ce code est assez sécurisé pour générer 4 chiffres au hasard ?

N'hésitez pas à commenter si vous avez des suggestions, des conseils, des questions...

Merci.