begin process at 2010 03 21 06:43:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > GENERATEUR DE MOT DE PASSE FACILEMENT MÉMORISABLE

GENERATEUR DE MOT DE PASSE FACILEMENT MÉMORISABLE


 Information sur la source

Note :
8,18 / 10 - par 11 personnes
8,18 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Débutant Date de création :10/03/2005 Vu :9 958

Auteur : tucsoufle

Ecrire un message privé
Commentaire sur cette source (24)
Ajouter un commentaire et/ou une note

 Description


Salut tout le monde

en temps normal, je suis le premier à raler quand sur un site quand on me file
un mot de passe compliquer à retenir

et puis, j'ai fait la même chose...  allez comprendre !!! donc, j'ai décidé de modifier ça
je me suis dit qu'en alternant entre consonnes et voyelles, le mot de passe
serait plus facilement mémorisable pour son utilisateur

donc voila : un code simple pour un mot de passe simple !

Source

  • <?php
  • function CreatePass($long_pass)
  • {
  • $consonnes = "bcdfghjklmnpqrstvwxz";
  • $voyelles = "aeiouy";
  • $mdp='';
  • for ($i=0; $i < $long_pass; $i++)
  • {
  • /* L'opérateur % permet le changement entre voyelle et consonne */
  • if (($i % 2) == 0)
  • {
  • $mdp = $mdp.substr ($voyelles, rand(0,strlen($voyelles)-1), 1);
  • }
  • else
  • {
  • $mdp = $mdp.substr ($consonnes, rand(0,strlen($consonnes)-1), 1);
  • }
  • }
  • return $mdp;
  • }
  • /* Appel de la fonction */
  • $motdepasse = CreatePass(8); /* ici : exemple avec un mot de passe de 8 caracteres */
  • echo 'Mot de passe généré : '.$motdepasse;
  • ?>
<?php
function CreatePass($long_pass)
{
	$consonnes = "bcdfghjklmnpqrstvwxz";
	$voyelles = "aeiouy";

	$mdp='';
	for ($i=0; $i < $long_pass; $i++)
	{
		/* L'opérateur % permet le changement entre voyelle et consonne */
		if (($i % 2) == 0)
		{
			$mdp = $mdp.substr ($voyelles, rand(0,strlen($voyelles)-1), 1);
		}	
		else
		{
			$mdp = $mdp.substr ($consonnes, rand(0,strlen($consonnes)-1), 1);
		}
	}
	
	return $mdp;
}

/* Appel de la fonction */
$motdepasse = CreatePass(8); /* ici : exemple avec un mot de passe de 8 caracteres */
echo 'Mot de passe généré : '.$motdepasse;
?>



 Conclusion


d'accord, ce n'est pas un script trés évolué mais il peut être pratique
enfin, à vous de me le dire ?


 Sources du même auteur

PALINDROME

 Sources de la même categorie

Source avec une capture PAGINATION EN PHP par Orangina
Source avec Zip POO - DEBUGGER par DiGhan
Source avec Zip CRAWLER DE SITE EN PHP par Mcjo
DÉCOUPAGE D'UN TEXTE EN FONCTION DES SAUTS DE LIGNES par biloubil
RÉCUPÉRER LE CHEMIN RELATIF D'UN OBJET PAR RAPPORT À LA RACI... par FredPsy

Commentaires et avis

Commentaire de malalam le 10/03/2005 16:26:41 administrateur CS

Je ne suis pas sur que ce soit tres tres efficace question securite, lol, mais rien a redire au code, ca peut servir :-)

Commentaire de tucsoufle le 10/03/2005 16:48:42

normal, je ne me suis pas occupé de la sécurité du tout !
je génére le mot de passe c'est tout

bien sur ensuite il faut le crypter, md5 ou autre...
mais on trouve des codes de cryptage partout donc je laisse ça à part

Commentaire de Taka_s_tiger le 10/03/2005 17:13:44

c'est bien vrai, les mot de pass sont aléatoir mais facile a retenir
arawyjoj
uwybywif
egonalig
emubetif
c'est imposible a deviner mais ca a une "sonorité" qui est facile a mémoriser

Commentaire de malik7934 le 11/03/2005 07:31:04

Taka_s_tiger:  "c'est imposible a deviner"

Le code a 26 caractères, on sait qu'il génère un pwd qui commence par une voyelle, qu'il y a en tout 4 voyelles et 4 consomnes.

5 voyelles possibles, 21 consomnes =>
5^4*21^4 possibilités = 121 550 625 = entre 2^26 et 2^27 possibilités en brute force... pour ceux qui connaissent un peu la crypto, c'est rien!

D'un point de vue Sécurité, ce système est très mauvais.... mais l'idée est louable  ;o)

Commentaire de malalam le 11/03/2005 09:19:13 administrateur CS

Tu sais quoi Tuc, on pourrait meme jouer avec les majuscules et minuscules. Mais bon, ce serait plus difficile a retenir.
Ceci dit, je suis a la fois d'accord avec toi, et avec malik.  Je hais les sites qui te refilent un mot de passe hyper complique...je finis de toutes facons par le noter lol.

Commentaire de tucsoufle le 11/03/2005 10:55:03

je suis du même avis que malik aussi !
je tiens à dire que je vais utiliser cette technique sur le site que je suis en train de créer
c'est à dire, quand un utilisateur a oublié son pass, je lui renvoi un nouveau généré par ce script et pour les raisons évidentes de sécurité, je lui conseil de re-modifier son mot de passe directement sur le site une fois reloguer...

voila, c'est cette methode que je vais appliquer

Commentaire de Tukkkko le 11/03/2005 11:47:00

Salut,

On peut probablement faire encore mieux.

Cependant, l'idée est Excellente.

En plus, elle peut être transposée aisément à tous les langages (ASP,ASPX,JSP...)

C'est vraiment une très bonne idée

Commentaire de tucsoufle le 11/03/2005 12:15:03

merci
et bien sur on peut faire mieux, on peut toujours faire mieux

donc si quelqu'un a des idées d'amélioration, surtout ne pas hésiter à m'en parler !

Commentaire de malalam le 11/03/2005 12:22:00 administrateur CS

On pourrait faire des mots de passe palindromes...c'est encore plus facile a retenir (et plus facile a casser ;-) )

Commentaire de tucsoufle le 11/03/2005 12:35:42

ça c'est de l'idée ;) mdr
lol, mais je vois pas vraiment l'utilité de la chose !!!!

Commentaire de Taka_s_tiger le 11/03/2005 18:13:41

""D'un point de vue Sécurité, ce système est très mauvais.... mais l'idée est louable  ;o)""

nimporteque brutforce peu venir a bout d'un mot de pass....ce que je vexu dire..c'est que personne ne poura le deviné...comme ma soeur qui met le nom de son petit ami comme mot de pass loool..ca c'est facile a deviné
mais "emubetif" tu vera jamais personne deviné ca du premier coup..même pas au 2e non plus :-)

Commentaire de malik7934 le 11/03/2005 18:58:31

Ok Taka_s_tiger...
Moi ce que je veux dire c'est que deviner un mot de passe construit ainsi, c'est vachement plus easy que s'il est construit sur tous les caractères possibles, tu vois. Même en brute-force, ce sera pas facile de trouver un truc genre ";Qzt9!,_"... ok, c'est pas facile à se rappeler, mais je rappelle qu'un bon mot de passe ne dois justement pas être facile à se rappeler ;o)

C'est un cercle vicieux ça...

Commentaire de Tukkkko le 11/03/2005 22:48:25

Vous vous battez pour rien à mon sens, Tucsoufle a bien dit que c'est un mot de passe temporaire.

D'autre part, pour répondre à Malik, pour qu'un algo trouve "abcdefg", c'est aussi probable que "DgJ,?kei#" ou presque (c'est une supposition de recherche algorithmique sans dictionnaire pré établi), donc pas de souci, arrêtons de polémiquer sur des choses sans importance.

Aussi, pour répondre à Malik, dire qu'un bon mot de passe ne doit pas être facile à se rappeler, c'est totalement stupide et absurde...

Si tu me dis qu'il doit être très difficile à deviner par tout le monde, alors là, je dis OK... ;)

Commentaire de malik7934 le 12/03/2005 06:26:34

Salut Tukkkko,

D'abord je te conseille de te renseigner un peu avant de dire certaines choses sur les algos ;o)

Ensuite quand je dis qu'un bon mot de passe ne doit pas être facile à se rappeler, ça veut effectivement dire qu'il doit être très difficile à deviner re-;o)

Enfin, il est vrai que la "polémique" dépasse ici la source car on ne prend pas un char d'assaut pour protéger une cahute...

Commentaire de coucou747 le 28/04/2005 00:59:58

un crakeur commencera par perdre 7 * son pass pour comprendre que : ton pass généré est généré de la façon suivante :

une consone puis une voyelle, répété plusieurs fois...
soit pour deux lettres : 5*21=105 possibilitées...
105 ^ 3 pour un password de 8 lettres (8=2^3)
excuses moi, mais t'as interet d'interdire une même ip de tester plusieurs passwords en même temps, et de mettre un délais lors du log, ou alors de faire en sorte qu'une personne soit interdit de log, quand elle a fait trois erreurs dans la même journée...


je te proposes une amélioration :
avec :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
_0123456789+-*/()[]{}
:;,!?.%^²&~#"'|\@æ<>=

la, j'ai en gros : 4*21 possibilitées pour un caractère...
84 possibilitées...
en enlevant ton alternance consone/voyelle, on gagne bcp :
84^8 possibilitées pour un password de 8 caractères...

84^8 au lieu de 105^3
soit
2.4787589110285 * 10^15 au lieu de 1 157 625...

mon système est : 2141245145.088 fois plus performant que le tien...

de toute façon la personne changera le password, alors ça change quoi ? Bah ça change entre le moment ou la personne à son nouveau password et le moment ou elle le change... (perso, j'ai jamais changé un password sur un forum...)

dsl de te contredire malik, mais tes calculs sont faux, tu n'a pas pris en compte le fait que les consones et voyelles n'étaient pas tout à fait répatries au hasard, elles sont alternées... (car % veut dire reste de la divison, contrairement aux commentaires : "/* L'opérateur % permet le changement entre voyelle et consonne */
" le changement aurait du être fait par rand...)

en plus, ce code n'est pas rigoureu et pas optimisé...

Commentaire de malik7934 le 28/04/2005 08:20:41

Hello Coucou,

Le temps de me replonger dans cette source et de lire ton post pour te repondre que ... je ne me trompe pas. J'ai justement pris en compte cette alternance!

Il alterne consomne (21 possibilites) et voyelles (5 possibilites). Qu'on commence par une consomne ou une voyelle, le calcul est le meme. Commencons par une consomne avec un pwd de 8 lettres: 21 pos pour la 1e cons, puis 5 pour la voy, puis re-21 pour la cons, pui s... soit 21*5*21*5*21*5*21*5 = 5^4*21^4 possibilites = 105^4.

Tu dis "soit pour deux lettres : 5*21=105 possibilitées...
105 ^ 3 pour un password de 8 lettres (8=2^3)"... je te laisse trouver ton erreur toi meme: c'est pas parce que 8=2^3 que tu vas faire 105 ^ 3... il y a 4 blocs de 2 lettres, donc 105 ^ 4 :o)

Ceci dit, meme si la solution que tu proposes est effectivement plus 'puissante', elle est hors contexte: mot de passe -> FACILEMENT MÉMORISABLE <-

Au plaisir, Malik7934

Commentaire de coucou747 le 28/04/2005 12:48:05

exact... dsl pour cette erreur...

Commentaire de Tukkkko le 28/04/2005 13:43:21

Salut Malik,

Je veux pas t'embêter mon cher, ceci dit j'ai été, pendant quelques temps, ingénieur en sécurité dans une grosse boîte française...

Tout ça pour dire que le crackage, je l'ai beaucoup pratiqué, je sais à peu près comment ça marche ;o)

Je persiste, sa méthode est perfectible, mais pas mauvaise pour un password temporaire

Commentaire de malik7934 le 28/04/2005 15:41:17

Hello Tukkkko,

Je suis parfaitement d'accord. Au depart, je n'avais pas fait attention a "temporaire" ... oops! ;o)

Commentaire de dom_ponge le 29/04/2006 17:28:51

Moi je trouve que c'est bon!Tu peut aussi rajouté les nombres car c'est aussi facile a retenir et augmenterai la difficulté pour le trouvé.Aussi on n'ai pas oubligé de mettre consonnes et voyelles à répétition sans arret..On pourrai mettre un rand comme coucou747 là dit un rand pour 1 à 5 et comme si c'est 1 ou 2 c'est une voyelle et et 3,4 ou 5 c'est une consonnes ce qui permeterai(je pence) de gardé la facilité mais de rajouté de la difficulté a trouvé le mot de passe.

Commentaire de coucou747 le 02/05/2006 11:36:52

un rand... personellement, je suis d'avis de prendre un pseudo rand, puisqu'on en est dans les passwords aleatoires.... 6 ou 8 caractères comme ceci...


substr(0, $taille_voulue, md5(microtime5()))

evidement, on peut ajouter des choses en faisant en sorte que deux caractères en codent un seul, mais ça sera plus rapide qu'une fonction array_rand ou rand_mt car rand est une fonction complexe en C, et personellement, si j'ai à recoder la fonction rand sous linux, j'ouvre /dev/random

Commentaire de wizard512 le 07/05/2006 03:06:42

bonne source ; note : 8/10

Commentaire de Astalavista le 13/06/2006 09:51:02

Malgré tous ca, moi je dit, que c'est un bon prog, et que c'est bien utile pour generer un mot de passe a un utilisateur et qu'il le retienne.Bien sur, un systeme qui permet de lui suggerer un nouveau mot de passe à sa connection n'est pas de trop.
10/10

Commentaire de rduvrac le 02/08/2006 08:06:57

z'avez qu'à remplacer les 2 lignes par :
$consonnes = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_0123456789+-*/()[]{}:;,!?.%^²&~#'|\@æ<>=";
    $voyelles = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_0123456789+-*/()[]{}:;,!?.%^²&~#'|\@æ<>=";

Une façon simple de compliquer le résultat.

Facile même pour un gars qui ne s'y connai pas en code :-)

à ce propos, nul que je suis se demande comment le faire apparaitre dans un champ texte ? (vous voyez, je suis vraiment nul ;-) )

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales