21-05-2016, 06:38 PM
petit cadeau, voici un script qui peut générer des Token aléatoire et les valider, c'est relativement simple, et ça marche
ça se base sur le principe du MD5 + salt, mais en circuit ferme
après comme l'a dit Xenos, il faudrait que tu stock chaque token pour a la fois savoir si il on été utiliser mais aussi pour le donner un date de validité
ça se base sur le principe du MD5 + salt, mais en circuit ferme
après comme l'a dit Xenos, il faudrait que tu stock chaque token pour a la fois savoir si il on été utiliser mais aussi pour le donner un date de validité
Code PHP :
<?php
function rand_alphanumeric() {
$subsets[0] = array('min' => 48, 'max' => 57); // ascii digits
$subsets[1] = array('min' => 65, 'max' => 90); // ascii uppercase English letters
$subsets[2] = array('min' => 97, 'max' => 122); // ascii lowercase English letters
// random choice between lowercase, uppercase, and digits
$s = rand(0, 2);
$ascii_code = rand($subsets[$s]['min'], $subsets[$s]['max']);
return chr($ascii_code);
}
function generate_token($SECRET) {
$str = "";
for ($i = 0; $i < 8; $i++)
$str .= Self::rand_alphanumeric();
return $str . strtoupper(sha1($str . $SECRET));
}
function validate_token($TOKEN, $SECRET) {
$str = substr($TOKEN, 0, 8);
if ($TOKEN === ($str . strtoupper(sha1($str . $SECRET))))
return true;
return false;
}