Générateur de mots de passes aléatoires de longueur paramétrable

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 297 fois - Téléchargée 17 fois

Contenu du snippet

Avec cette petite fonction, vous pouvez générer des mots de passe, respectant les majuscules/minuscules, et incluant des chiffres de 0 à 9, et vous pouvez paramétrer sa longueur.
Voyez plutôt :

Source / Exemple :


// Pour appeller la fonction :
function GetRandomPassWord(Len:Integer): String;

La fonction :

function GetRandomPassWord(Len: Integer): String;
Var
   ActualNum: Integer;
   Password: String;
   I: Integer;
   CharArray: array [1..1000] of Char;
begin
     Password := '';
     randomize;
     for I := 1 to Len do
begin
     ActualNum := random(61);
     if ActualNum = 0 then CharArray[I] := '0';
     if ActualNum = 1 then CharArray[I] := '1';
     if ActualNum = 2 then CharArray[I] := '2';
     if ActualNum = 3 then CharArray[I] := '3';
     if ActualNum = 4 then CharArray[I] := '4';
     if ActualNum = 5 then CharArray[I] := '5';
     if ActualNum = 6 then CharArray[I] := '6';
     if ActualNum = 7 then CharArray[I] := '7';
     if ActualNum = 8 then CharArray[I] := '8';
     if ActualNum = 9 then CharArray[I] := '9';
     if ActualNum = 10 then CharArray[I] := 'a';
     if ActualNum = 11 then CharArray[I] := 'b';
     if ActualNum = 12 then CharArray[I] := 'c';
     if ActualNum = 13 then CharArray[I] := 'd';
     if ActualNum = 14 then CharArray[I] := 'e';
     if ActualNum = 15 then CharArray[I] := 'f';
     if ActualNum = 16 then CharArray[I] := 'g';
     if ActualNum = 17 then CharArray[I] := 'h';
     if ActualNum = 18 then CharArray[I] := 'i';
     if ActualNum = 19 then CharArray[I] := 'j';
     if ActualNum = 20 then CharArray[I] := 'k';
     if ActualNum = 21 then CharArray[I] := 'l';
     if ActualNum = 22 then CharArray[I] := 'm';
     if ActualNum = 23 then CharArray[I] := 'n';
     if ActualNum = 24 then CharArray[I] := 'o';
     if ActualNum = 25 then CharArray[I] := 'p';
     if ActualNum = 26 then CharArray[I] := 'q';
     if ActualNum = 27 then CharArray[I] := 'r';
     if ActualNum = 28 then CharArray[I] := 's';
     if ActualNum = 29 then CharArray[I] := 't';
     if ActualNum = 30 then CharArray[I] := 'u';
     if ActualNum = 31 then CharArray[I] := 'v';
     if ActualNum = 32 then CharArray[I] := 'w';
     if ActualNum = 33 then CharArray[I] := 'x';
     if ActualNum = 34 then CharArray[I] := 'y';
     if ActualNum = 35 then CharArray[I] := 'z';
     if ActualNum = 36 then CharArray[I] := 'A';
     if ActualNum = 37 then CharArray[I] := 'B';
     if ActualNum = 38 then CharArray[I] := 'C';
     if ActualNum = 39 then CharArray[I] := 'D';
     if ActualNum = 40 then CharArray[I] := 'E';
     if ActualNum = 41 then CharArray[I] := 'F';
     if ActualNum = 42 then CharArray[I] := 'G';
     if ActualNum = 43 then CharArray[I] := 'H';
     if ActualNum = 44 then CharArray[I] := 'I';
     if ActualNum = 45 then CharArray[I] := 'J';
     if ActualNum = 46 then CharArray[I] := 'K';
     if ActualNum = 47 then CharArray[I] := 'L';
     if ActualNum = 48 then CharArray[I] := 'M';
     if ActualNum = 49 then CharArray[I] := 'N';
     if ActualNum = 50 then CharArray[I] := 'O';
     if ActualNum = 51 then CharArray[I] := 'P';
     if ActualNum = 52 then CharArray[I] := 'Q';
     if ActualNum = 53 then CharArray[I] := 'R';
     if ActualNum = 54 then CharArray[I] := 'S';
     if ActualNum = 55 then CharArray[I] := 'T';
     if ActualNum = 56 then CharArray[I] := 'U';
     if ActualNum = 57 then CharArray[I] := 'V';
     if ActualNum = 58 then CharArray[I] := 'W';
     if ActualNum = 59 then CharArray[I] := 'X';
     if ActualNum = 60 then CharArray[I] := 'Y';
     if ActualNum = 61 then CharArray[I] := 'Z';
end;

begin
     for I := 1 to Len do
begin
     Password := Password + CharArray[I];
     Result := Password;
end;

end;

end;

Conclusion :


Je ne sais pas encore comment délimiter une "array", donc j'ai mis 1000 comme limite, si quelqu'un sait comment la limiter selon la valeur de "Len", merci de m'éclairer :p

Voila !

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Hahaha et me voilà, plus de trois ans plus tard, devant ma première source CS (enfin, pas vraiment, mais bon). J'ai honte de ce code ! Mais quels souvenirs ... c'est assez merveilleux.

:)
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Bonjour,
Phildenice tu pars du principe que tout le monde sait ce que signifie un "hash MD5" ...
C'est peut-être très simple, mais pourrais-tu me dire de quoi il s'agit ? ... Merci
Sinon oui on peut améliorer cette source, c'était juste un essai pour m'entrainer avec les arrays, et les boucles "for - do", et comme elle marchait pas mal, je me suis dit que j'allais la mettre ici pour en faire profiter toute la communauté :p

Viva Code-Sources lol !
Cordialement, Bacterius !
Messages postés
1
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
17 mars 2008

Si ta fonction sert à mettre un mot de passe sur tes fichiers ou ton ordi, ok (cf Cirec et John Dogget).

Si tu veux en faire un keygen pour diffuser un user/password à des clients de ton application shareware, alors il faudrait y ajouter encore :
- la prise en compte éventuelle des caractères de contrôle (@, _, * ...)
- un hash MD5 par exemple du nom/email de l'utilisateur comme base du random ...

A+
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Moi pas 'tantplié' mais juste un 'peuplié'...

BIVER: Le SMS n'est pas le bienvenu sur les sites CS, tu peux lire et poster gratuitement donc rien ne peut justifier l'économie d'octet.
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
CS, merci pour ta source je la garde dans un petit fichier texte sur mon bureau, elle contient pas mal d'infos, mais me faudra du temps pour décortiquer tout ca :)
Et quand à laisser tomber l'array pour plutot remplir une chaîne simple, ca m'est venu à l'idée avec le message de John Dogget, mais j'étais fatigué :x
Merci beaucoup tout le monde :)

PS : Biver essaye de te procurer un delphi, ou un C++ ou quelque chose avant d'essayer de programmer :s
Afficher les 12 commentaires

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.