Salut ne pas faire perdre du temps à certaines personnes qui veulent aider et qui renvoie vers des ébauches de solutions (ce que je comprends, ce que je pousse à faire).
Dans ce cas ci notre ami n'est pas développeur il ne cherchera donc pas et risque de faire un code de merde ce que je n'approuve pas non plus....
Donc, je vais faire gagner du temps à tout le monde...
Alors, il ne vaut mieux pas utiliser md5() car c'est du 128 bits alors qu'sha1(); fait mieux (192 bits) et qu'a ma connaissance il n'a pas encore été cassé ce qui est le cas d'md5()
La seule différence c'est qu'sha1() génère des chaines de 40 caractères alors qu'md5() n'en génère que 32 (il me semble).
Ensuite utiliser date() n'est pas une bonne idée étant donné que deux hash (c'est comme cela que s'appelle la chaine de cartère générée par md5() et sha1()) obtenu avec la même valeur de départ son identique.
Donc avec date() il ne peut y avoir qu'une seule clé d'activation généré par jour... ce qui n'est pas unique et risque de perturber notre ami en créant des doublons.
Nous allons donc utiliser la fonction time() qui elle renvoie le nombre de seconde écoulé depuis le 01/01/1970.
Ce qui est déjà plus précis car il faut que deux hash soient généré à la même seconde pour être identique...
donc :
function generateKey(){
return sha1(time());
}
$key = generateKey();
... Mémorisation de la clé...
Rien ne sert de découper la chaine sinon, elle risque de ne plus être unique...
Tu stockes le contenu de la variable $key ou tu le souhaite de façon à le récupérer plus tard et à comparer la clé d'activation fournie avec la clé mémorisée.
via la fonction suivante.
function compareKey($key_memory, $key_receive){
if($key_memory == $key_receive)
return true;
return false;
}
$key_receive = la valeur que tu reçois de je ne sais pas ou, cela dépend de ce que tu veux faire et donc d'où elle provient...
$key_memory = la clé mémorisée lors de la création que tu as conservée là ou tu veux (du moment que c'est facilement récupérable)...
if(compareKey($key_memory, $key_receive))
echo 'Clé identique';
else
echo 'Clé différente';
J'espère avoir fait gagner du temps à tout le monde ... sauf moi..