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

Soyez le premier à donner votre avis sur cette source.

Vue 4 533 fois - Téléchargée 138 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
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
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
194
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010
-
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
250
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
28 août 2009
-
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
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
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.