Generateur de mot de passe

Soyez le premier à donner votre avis sur cette source.

Vue 26 858 fois - Téléchargée 1 687 fois

Description

Un générateur de mot de passe pas très complexe.

Il accepte trois paramètres :
- Nombre
- Ponctuation
- Lètres

Codes Sources

A voir également

Ajouter un commentaire Commentaires
affoufti
Messages postés
5
Date d'inscription
dimanche 15 avril 2007
Statut
Membre
Dernière intervention
11 août 2011

11 août 2011 à 13:24
@rdurupt: bhen il n'est jamais trop tard ..merci pour ce bout de code
cs_rdurupt
Messages postés
1
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
23 juin 2011

23 juin 2011 à 14:30
J’arrive un peut tard 2005 c’est loin.
Ceci dit si quelqu’un s’intéresse à ce code, je vous propose m’a variante.
En fait je m’intéresse qu’à la génération de mot de passe tel qu’il peut être trouvé dans un login Windows (des lettres, des chiffres et des symboles) avec huit caractères minimum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PassWord
{
class GeneratePass

{
//Retourne un caractère aléatoirement de A à Z
private string letter(Random rd)
{
string lettre = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return lettre[rd.Next(0, lettre.Length)].ToString();
}
//Retourne aléatoirement un chiffre au format string de 0 à 9
private string nombre(Random rd)
{
return rd.Next(0, 10).ToString();
}
//Retourne aléatoirement un signe /*-+% etc.
private string ponctuation(Random rd)
{
string ponctuation = ",?.;:/!§£$%µ*-+" ;
return ponctuation[rd.Next(0, ponctuation.Length)].ToString();
}
/**
* Toutes les fonctions de la class sont privé sauf celle-ci pour permettre de récupérer la valeur à partir du programme.
* Vue que les mots de passe sont souvent de 8 caractère minimum, j'affecte un rendom de 8 à 12 caractères.
* Pour mitiger les caractères type lettre nombre et ponctuation, je fixe un autre redom de 1 à 3 pour définir aléatoirement la chêne de caractères.
* Je passe le rendom (rd) aux fonction privés pour ne pas à avoir à le réinitialiser.
* */
public string Generer()
{
Random rd = new Random(); //Initialiser le rendom
string pass = "";
for (int i = 0; i < rd.Next(8, 13); i++) //Pour 8 caractères à redom de 12 caractères
{
switch (rd.Next(1, 4)) //Selon Type de caractère?
{
case 1: //Type lettre
pass += letter(rd);
break;
case 2: //Type nombre
pass += nombre(rd);
break;
case 3: //Type ponctuation
pass += ponctuation(rd);
break;
}
}
return pass; //Retourne le mot de passe ainsi généré.
} }
}
el_teedee
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
7
7 oct. 2005 à 19:09
Oui, c vrai que le coup de traiter les lettres comme des objets, pour utiliser .Sort(), c'est vraiment de la programmtion objet ^^
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
7 oct. 2005 à 13:58
mouaip... quelques petites remarques concernant ton code (je n'ai regardé que la classe generatePass) :

ca ne sert à rien de déclarer un tableau de string du type :
string[] lettre = { "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z" };
utilise plutot ceci :
string lettre = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
la suite devient :
Random rd = new Random();

for (int i = 0; i < numberLettre; i++)
{

int numberLet;
numberLet = rd.Next(0, lettre.Length);

if (i % 2 == 0)
{
chaineLettre += lettre[numberLet;
}
else
{
chaineLettre += lettre[numberLet].ToLower();
}

}

pareil pour les autres méthodes...

pour ta méthode mélange... j'aurais vu quelque chose de plus "Orienté Objet"...
je m'explique. une string peut être vu comme un char[] et donc peut utiliser une classe de type IComparer pour trier ses éléments en utilisant sa méthode Sort().
ex :

public class Melangeur : IComparer {
private Random rd;
public Melangeur() {
rd = new Random();
}
public int Compare(object x, object y) {
if ((char)x == (char)y)
return 0;

return rd.Next(-1,1)
}
}

du coups pour melanger, ta méthode deviendra :
public string Melanger(string chaine) {
char[] lettres = chaine.ToCharArray();
Array.Sort(lettres, new Melangeur());
chaine = new string(lettres);
return chaine;
}

enfin... en .NET,les conventions de nommage ne sont pas les mêmes qu'en Java... c'est à dire que les classes, les propriétés, les méthodes doivent avoir une majuscule au début.

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.

Du même auteur (cs_Pierrrot)