Aller au contenu

C# Génération Automatique de Password

Yop

Hyper simple si vous utilisez ce code :

public string CreatePassword(int length)
 {
 const string valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
 StringBuilder res = new StringBuilder();
 Random rnd = new Random();
 while (0 < length--)
 {
 res.Append(valid[rnd.Next(valid.Length)]);
 }
 return res.ToString();
 }

Puis ensuite il vous suffit d’appeler votre fonction pour générer votre mdp
le int length représente le nombre de caractère que vous souhaitez assigner à votre code

Exemple : vous souhaitez un mdp à 10 caractères

string Password = CreatePassword(10);

et si vous voulez affichez votre mdp dans un popup :

string Password = CreatePassword(10);
MessageBox.Show("INFO",Password ,MessageBoxIcon.Information,MessageBoxButtons.OK)

Version plus Élaborée : imaginons que vous ayez besoin que votre password contienne minimum 3 Majuscules , 2 Chiffres et un caractère spécial sur une longueur de 12 caractères

public string CreatePassword(int length , int NBRMAJ , int NBRCHIFFRE , int NRBSPE)
 {
 
 const string validMIN = "abcdefghijklmnopqrstuvwxyz";
 const string validMAJ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 const string validCHIFFRE = "1234567890";
 const string validSPE = "!+-$%(),";

int CompteurMin = 0;
 int CompteurMaj = 0;
 int CompteurNRBCHIFFRE = 0;
 int CompteurNRBSPE = 0;

int LongueurMDP = length;

StringBuilder res = new StringBuilder();
 Random rnd = new Random();
 while ((CompteurMaj == NBRMAJ) == false && (CompteurNRBCHIFFRE == NBRCHIFFRE) == false && (CompteurNRBSPE == NRBSPE) == false)
 {
 while (0 < LongueurMDP--)
 {
 int random = rnd.Next(1, 5);

switch (random)
 {
 case 1:
 if (CompteurMin < length)
 {
 res.Append(validMIN[rnd.Next(validMIN.Length)]);
 CompteurMin = CompteurMin + 1;
 }

break;
 case 2:
 if (CompteurMaj < NBRMAJ)
 {
 res.Append(validMAJ[rnd.Next(validMAJ.Length)]);
 CompteurMaj = CompteurMaj + 1;
 }

break;
 case 3:
 if (CompteurNRBCHIFFRE < NBRCHIFFRE)
 {
 res.Append(validCHIFFRE[rnd.Next(validCHIFFRE.Length)]);
 CompteurNRBCHIFFRE = CompteurNRBCHIFFRE + 1;
 }

break;
 case 4:
 if (CompteurNRBSPE < NRBSPE)
 {
 res.Append(validSPE[rnd.Next(validSPE.Length)]);
 CompteurNRBSPE = CompteurNRBSPE + 1;
 }

break;
 };

if (LongueurMDP == 0)
 {
 if (res.Length < length)
 {
 LongueurMDP = LongueurMDP + 1;
 }
 }

}
 }

return res.ToString();
 }

Du coup vous appelez votre méthode ainsi :

string Password= CreatePassword(12, 3, 2, 1);
  • 1er paramètre la longueur du password
  • 2ème , le nombre de Majuscule souhaité
  • 3ème , le nombre de chiffre souhaité
  • 4ème , le nombre de caractère spécial souhaité
Étiquettes:

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *