(fonction) générateur de code mnémotechniques du type badi36

Soyez le premier à donner votre avis sur cette source.

Vue 4 889 fois - Téléchargée 161 fois

Description

<?php
//*********************Mnemotechnic Password Generator 1.0*************************
//* *
//* A code designed by Bastien MARTIN (magidev@hotmail.com) - GNU/GPL LICENSE *
//* *
//*********THIS CODE MUST SHOW THE AUTHOR NAME IN THE SOURCE - THANKS**************

//USE : Call the function PasswordGen and specify a lenght 6,8,10 in the parameter
//THE CODE GENERATE A PASSWORD LIKE biwu98 OR cabeto03 (example)

//UTILISATION : Appellez la fonction PasswordGen and spécifiez la longueur en parametre (6,8 ou 10)
//LE CODE GENERE UN MOT DE PASSE COMME biwu98 OU cabeto03 (exemple)

//TO GENERATE A PASSWORD WITH UPPERCASE, PASS 1 in the second parameter
//POUR GENERER UN MOT DE PASSE AVEC DES LETTRES MAJUSCULES, PASSEZ le parametre 1 dans le second parametre

function PasswordGen($passLenght,$uppercase){
$Consonnes[1]="z";
$Consonnes[2]="r";
$Consonnes[3]="t";
$Consonnes[4]="p";
$Consonnes[5]="q";
$Consonnes[6]="s";
$Consonnes[7]="d";
$Consonnes[8]="f";
$Consonnes[9]="g";
$Consonnes[10]="h";
$Consonnes[11]="j";
$Consonnes[12]="k";
$Consonnes[13]="l";
$Consonnes[14]="m";
$Consonnes[15]="w";
$Consonnes[16]="x";
$Consonnes[17]="c";
$Consonnes[18]="v";
$Consonnes[19]="b";
$Consonnes[20]="n";

$Voyelles[1]="a";
$Voyelles[2]="e";
$Voyelles[3]="u";
$Voyelles[4]="i";
$Voyelles[5]="o";
$Voyelles[6]="y";

$Unites[1]="1";
$Unites[2]="2";
$Unites[3]="3";
$Unites[4]="4";
$Unites[5]="5";
$Unites[6]="6";
$Unites[7]="7";
$Unites[8]="8";
$Unites[9]="9";

$Dizaines[1]="0";
$Dizaines[2]="1";
$Dizaines[3]="2";
$Dizaines[4]="3";
$Dizaines[5]="4";
$Dizaines[6]="5";
$Dizaines[7]="6";
$Dizaines[8]="7";
$Dizaines[9]="8";
$Dizaines[10]="9";

$GroupeL1 = $Consonnes[rand(1,20)] . $Voyelles[rand(1,6)];
$GroupeL2 = $Consonnes[rand(1,20)] . $Voyelles[rand(1,6)];
$GroupeL3 = $Consonnes[rand(1,20)] . $Voyelles[rand(1,6)];
$GroupeL4 = $Consonnes[rand(1,20)] . $Voyelles[rand(1,6)];
$GroupeChiffre = $Dizaines[rand(1,10)] . $Unites[rand(1,9)];

if($passLenght==6){
if($uppercase!=1){
return( $GroupeL1 . $GroupeL2 . $GroupeChiffre);
}
if($uppercase==1){
return( strtoupper($GroupeL1 . $GroupeL2 . $GroupeChiffre));
}
}

if($passLenght==8){
if($uppercase!=1){
return( $GroupeL1 . $GroupeL2 . $GroupeL3 . $GroupeChiffre);
}
if($uppercase==1){
return( strtoupper($GroupeL1 . $GroupeL2 . $GroupeL3 . $GroupeChiffre));
}
}

if($passLenght==10){
if($uppercase!=1){
return( $GroupeL1 . $GroupeL2 . $GroupeL3 . $GroupeL4 . $GroupeChiffre);
}
if($uppercase==1){
return( strtoupper($GroupeL1 . $GroupeL2 . $GroupeL3 . $GroupeL4 . $GroupeChiffre));
}
}

}
?>

Conclusion :


Et voila :-) L explication d utilisation est dans le code en commentaire

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008
19 juin 2005 à 19:17
Quand on y pense, le uppercase est pas utile... puisque l'on peut faire nous même strtoupper() après l'appel de la fonction... Laissons aux fonctions leur utilité première...
cs_Astalavista Messages postés 192 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 3 février 2010
19 juin 2005 à 00:50
J'ai vu ta source et elle ma bien plus :) mais je me suis dit qu'il y avais plus simple et rapide, alors voila pour ceux qui voudrais choisir la taille qu'ils veulent, je met ma source ici ...

function PasswordGen($passLenght, $uppercase){
$Consonnes = array('z','r','t','p','q','s','d','f','g','h','j','k','l','m','w','x','c','v','b','n');
$Voyelles = array('a','e','u','i','o','y');
$passLenght -= 2;

if($passLenght <= 0)
$passLenght = 1;

for($i = 0; $i < $passLenght;$i++)
{
$PASS .= $Consonnes[rand(0,19)];
$i++;
if($i == $passLenght)break;
$PASS .= $Voyelles[rand(0,5)];
}

$PASS .= rand(0,9).(rand(0,8) + 1); // On met un nombre de deux caractère a la fin

if((bool)$uppercase) // Si on choisi les majuscules
$PASS = strtoupper($PASS);

return $PASS;
}
Magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
21 août 2004 à 03:59
Merci pour le commentaire. J y répond toujours. Ben oui ce serai possible de proposer une taille variable, mais je ne l'ai pas programmé. Dans un souci de simplification et aussi parce que un code a longueur dynamique ne m'était pas utile j'ai fai comme cela.

Mais etant donné que la programmation de communauté est toujours bénéfique, tu peux proposer si tu le souhaite une version améliorée de ce code ou le modifier a ta guise, je suis pour l'OpenSource donc mes sources sont ouvertes a chaque fois pour de petits scripts comme ceux-ci.

Merci du commentaire et à la prochaine pour d'autres aventures LOL. magidev@hotmail.com
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008
21 août 2004 à 03:50
C'est pas mal ! J'adore :) par contre, le code pourrait etre un peu ameliorer. Du style autoriser seulement des length de 6, 8 ou 10 fait un peu bizarre.
La creation a lavance de tout tes groupes aussi... Cree les lorsque tu en as besoin !

Par exemple pour un length dynamique, tu mets toujours consonne voyelle consonne voyelle ... et tes 2 chiffres a la fin. Si < 3 par exemple, alors tu n'affiches pas ces chiffres.

8/10 Bravo

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.