Systême semblable aux clés cd .

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 165 fois - Téléchargée 16 fois

Contenu du snippet

Bnojur , c'est ma 1ere source donc soyez sympa :D .Ce systêle génere des clés semblable aux clés CD . Sans prétention , vous pourrez l'inclure dans un site payant (pour l'activation de X ou Y service . ) .

Source / Exemple :


<?php

function section_cle($chrs = "") {

		$chaine = ""; 

		$list = "786ABNPQRSTUVWXYZ";

		mt_srand((double)microtime()*1000000);

		$string="";

		while( strlen( $newstring )< $chrs ) {

			$string .= $list[mt_rand(0, strlen($list)-1)];

		}

		return $string;

	}

$nbr_cle = 4 ;

echo 'Voici '.$nbr_cle.' clefs a conserver precieusement ! <br /><br /><br />' ;
while($nbr_cle != 0)
{
$nbr_cle -- ;
$cle = section_cle(5).'-'.section_cle(5).'-'.section_cle(5).'-'.section_cle(5).'-'.section_cle(2) ;

echo'<span style="color:white;background:black;">'.$cle.'</span><br /><br />' ;

}

?>

Conclusion :


Voila, @ ++ .

A voir également

Ajouter un commentaire

Commentaires

Messages postés
8
Date d'inscription
vendredi 5 février 2010
Statut
Membre
Dernière intervention
8 février 2010

Bonjour,

Je cherche le moyen de générer des clés d'activation en fonction de la date du jour, après validation d'un formulaire.
Concrètement, l'utilisateur installe un programme Visual Basic, qui lui demande une clé pour être activé. L'utilisateur rempli donc un formulaire html sur un page web, puis la validation du formulaire lui donne une clé après une opération simple sur la date du jour. L'utilisateur entre donc le code créé dans le programme qui connait également la même formule opérée pour la date, pour vérifier le code et activer son application.

La partie "application" est déjà faite et fonctionnelle, c'est plutot le moyen de générer des clés en fonction de la date que je ne connais pas. (je ne cherche pas à contrôler l'identification d'un utilisateur, comme je l'ai souvent trouvé dans le forum, mais uniquement à afficher un code en fonction de la date).

On peut donc imaginer un formulaire html, qui mène ensuite vers une page en php qui génère le code automatiquement. Je ne veux biensûr pas stocker les clés, puisqu'elles sont créés en fonction de la date.

J'espère que j'ai été assez clair,

Merci d'avance à qui voudra bien m'aider !
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Bah en fait les deux sont possible tout dépend de l'algo... tu peux travailler avec juste une clé publique et là ta fonction de vérif est privée ou alors travailler avec une clé privée et une clé publique et ta fonction de vérif tu t'en fout c'est la clé privée qui est importante... c'est le principe des clés RSA... .. .

@ tchaOo°
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30
bien sur que si... c'est la fonction de generation qui doit-etre cachee...

mais la, tu ne peux pas ecrire de fonction de verification vu ton algo, car comme le dit si bien kankrelune :

De toute façon en l'état c'est invérifiable n'importe quelle chaine de la bonne longueur correspondra.
Messages postés
2
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
24 octobre 2008

Le problême , c'est que si la fonction de vérification deviens publique , elle n'aura plus aucune utilitée ...
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

De toute façon en l'état c'est invérifiable n'importe quelle chaine de la bonne longueur correspondra la seule vérification que tu peux faire c'est en la stockant dans une bdd et en la comparant j'appellerais pas ça un générateur de clée mais plutot un générateur de mot de pass c'est un peu plus compliqué que ça un générateur de clée et dans ce cas pas besoin de boucle... .. .

function section_cle($chrs = 10) { return substr(md5(uniqid(rand(), true)), 0, $chrs); }

sauf si tu as besoin d'un pass de plus de 32 caractères... .. .

sinon sur le présent code...

function section_cle($chrs = "")

pas beau ça $chrs est censé être un entier non ? donc...

function section_cle($chrs = 10)

fait attention au typage un chiffre entier ça n'est pas la même chose qu'une chaine de caractère... .. . ;o)

while( strlen( $newstring )< $chrs ) {

$string .= $list[mt_rand(0, strlen($list)-1)];

}

alors déja en l'état je pense que le code ne fonctionne pas pour la simple et bonne raison que $newstring n'existe pas... en imaginant qu'il sagit de $string ici à chaque itération de ta boucle tu utilise strlen()... ce n'est pas utile car tu sais quelle longueur elle avait au début et tu peux donc facilement savoir quelle longueur elle fait... et surtout c'est couteux en perf si ton pass devait faire 200 caractères tu appellerais 200 fois strlen pour pas grand chose... pareil pour le strlen() qui est dans la boucle...

$string = '';
$passLen = 0;
$listLen = strlen($list)-1;

while($passLen++ < $chrs )
$string .= $list[mt_rand(0,$listLen)];

tu peux même faire...

$string = '';
$passLen = -1;
$listLen = strlen($list)-1;

while(++$passLen < $chrs )
$string .= $list[mt_rand(0,$listLen)];

si tu veux grapiller... .. .

Voili voilou... le code n'est pas tip top mais c'est en forgeant qu'on devient forgeron... .. .

@ tchaOo°
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.