begin process at 2010 02 10 13:54:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Texte

 > GÉNÉRATEUR DE MOTS DE PASSES ALÉATOIRES DE LONGUEUR PARAMÉTRABLE

GÉNÉRATEUR DE MOTS DE PASSES ALÉATOIRES DE LONGUEUR PARAMÉTRABLE


 Information sur la source

 Description

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

  • // 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;
// 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 !


 Sources du même auteur

Source avec Zip Source avec une capture UNITÉ DE SUPPORT VISTA
Source avec Zip Source avec une capture GESTION DES "CRASHS D'APPLICATION"
Source avec Zip Source avec une capture CONJECTURE DU CARRÉ DES FACTEURS
Source avec Zip Source avec une capture EFFET VITRE ET THUMBNAILS SOUS VISTA
Source avec Zip Source avec une capture UTILISER UNE DLL INCLUSE EN RESSOURCES

 Sources de la même categorie

Source avec Zip COMBINAISONS DE STRINGS par askil2000
Source avec Zip Source avec une capture RECONNAISSANCE DE CARACTÈRES (OCR) par Bacterius
Source avec Zip Source avec une capture NETTOYAGE AUTOMATIQUE DE NOMS DE FICHIERS par John Dogget
DISTANCE DE JARO-WINKLER par PoulpHunter
Source avec Zip BASE DE DONNÉE WIKI par thithony

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture COMPOSANT TLOG UTILISANT UNE DLL par Bacterius
Source avec Zip Source avec une capture ÉVALUATION EXPRESSIONS MATHÉMATIQUES par barbichette
Source avec Zip TABLEAU DE TYPE DYNAMIQUE SANS VARIANT par DevNul
Source avec Zip JEU DE GATEAUX par meri_info
Source avec Zip GRAPHE D'UNE FONCTION DE 2 VARIABLE par hibi

Commentaires et avis

Commentaire de Bacterius le 09/03/2008 14:52:45

Bon ok le source n'est pas très commenté, mais le principe est assez simple et compréhensif :)
A bientôt !

Commentaire de cantador le 09/03/2008 15:32:43

Tu devrais pouvoir écrire une boucle pour remplir
le tableau CharArray.

Commentaire de Bacterius le 09/03/2008 17:03:17

Bonjour, Cantador je ne comprends pas très bien, j'ai bien rempli le tableau avec la boucle située à la ligne 16 non ? Ce que je voudrais savoir faire c'est comment faire pour regler l'étendue du tableau CharArray avec [1..Len]... J'ai essayé et le compilateur me dit "Expression constante attendue"...
A bientôt !

Commentaire de John Dogget le 09/03/2008 18:11:44

Je peux me tromper mais un tableau de char, ça serait pas une simple chaine de caractère par hasard ?
Autrement dit "array [1..100] of char" et "string" sont equivalents.

J'ai moi même posté une source similaire, libre à toi de t'en inspirer, c'est ici -> http://www.delphifr.com/codes/GENERATEUR-MOTS-PASSE-ALEATOIRES_36977.aspx

Commentaire de Bacterius le 09/03/2008 18:25:23

Oui mais *leve le doigt* ... *reflechit* ...
...
non rien merci John Dogget :)
:p
A bientôt

Commentaire de cantador le 09/03/2008 18:41:15

Bacterius :
C'était un remplissage automatique auquel je faisais allusion et non à la mano..

Commentaire de Bacterius le 09/03/2008 19:56:29

Ah ok :s

Commentaire de cirec le 09/03/2008 21:45:49 administrateur CS

Salut,

// Pour appeller la fonction :
Function GetRandomPassWordEx(Const Len: Integer = 8): String;

Function GetRandomPassWordEx(Const Len: Integer): String;
Var
ActualNum: Integer;
I: Integer;
Begin
  Randomize;
  SetLength(Result, Len);
   for I := 1 to Len do
begin
   ActualNum := Random(62);
   Case ActualNum Of
     0..9 : Result[I] := Chr(ActualNum + 48);
     10..35: Result[I] := Chr(ActualNum + 87);
     36..61: Result[I] := Chr(ActualNum + 29);
   End;
End;
End;

//Exemple d'appel
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := GetRandomPassWordEx; // gerere un mot de 8 caractères
  Label2.Caption := GetRandomPassWordEx(18); // gerere un mot de 18 caractères
end;

Du coup le code suffit juste pour le poster dans les Snippets et plus dans les codes

Commentaire de Bacterius le 09/03/2008 22:11:32

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

Commentaire de BruNews le 11/03/2008 00:56:00 administrateur CS

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.

Commentaire de phildenice le 17/03/2008 10:17:06

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+

Commentaire de Bacterius le 18/03/2008 18:06:33

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 !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Fonction qui retourne un array of string [ par arthur07 ] DR@G Bonjour, J'aurais besoin d'aide pour une fonction qui doit retourné un tableau. function Query(Query : string) : arr Newby vs. dll [ par DeltaFX ] Salut a tous,Je suis un pur newby, et je me retrouve en train d'essayer de pondre une dll avec delphi 7. Jusque là ca va, j'ai suivi des tutos de ci, Comment passer un tableau de Strings à une fonction [ par Freeskieur ] Bonjour, Je sais pas comment passer un tableau de strings à 2 dimensions à une fonction et ca commence à me vraimment me prendre la t& Fonction delphi [ par l0sth34d2 ] Bonjour! :PJ'ai chercher sur google et ici pour une function Delphi mais je n'arrive pas a la trouver.. Y a-t-il une function qui permet de retourner delphi7, oracle9, BDE et les fonctions stoquées [ par trigoutte ] Bonjour à tous Je cherche à appeler une fonction stoquée sous oracle 9 dans une application delphi9 en utilisant un composant BDE J'ai un objet TStore Type de fonction Array problem [ par ryadus ] Salut,J'ai un probleme lorsque je crée une fonction de type de sortie Array of real par exemple, ça ne marche pas, il ya erreur, je suis obligé de cré tableau de tableaux [ par Samou85 ] Bonjour à tous. je voudrais déclarer un tableau dynamique; où chaque case de ce tableau contiendrait un tableau de taille 3, je voudrais savoir est c Egalité de tableaux [ par cantador ] Bonjour,J'ai besoin de déclarer une égalité de tableaux et je viens de voir un petit souci :Si mes deux tableaux(tab1, tab2) sont déclarés dans deux u chercher des valeurs hexadecimal dans un bin [ par Smith4400 ] slt,Existe-il une methode pour chercher les adresses des valeurs dans un fichier bin ???j'explique plusquand le programme ouvre le fichier , il le  sc Changer axes Tchart avec dates [ par floppy41 ] Bonjour à tous, voila j'explique mon problème, j'ai réaliser un programme qui par une série de boucle et d'autres choses, me permet de récupérer des v


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,718 sec (3)

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