begin process at 2012 02 11 08:50:54
  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 RAYTRACING EN DELPHI (PROGRESSIVE PATH TRACING)
Source avec Zip Source avec une capture MOTEUR PHYSIQUE 2D CHIPMUNK.. EN DELPHI!
Source avec Zip Source avec une capture DOWNSAMPLING OU COMMENT BIEN OPTIMISER LE CODE
Source avec Zip Source avec une capture FACTORISATION ET TEST DE PRIMALITÉ 32 BITS ULTRA OPTIMISÉ
Source avec Zip LECTEUR DE FICHIER MULTIMÉDIA RIFF

 Sources de la même categorie

Source avec Zip Source avec une capture TABLEAU INFO SAVE INI par quentinix
Source avec Zip TIBWORD: EDITEUR ORIENTE LANGUE TIBÉTAINE par fredelem
Source avec Zip Source avec une capture POSTIT INFOS par dubois77
Source avec Zip Source avec une capture STREAM STRINGWRITER... UNE MICRO-LIBRAIRIE POUR ÉCRIRE DES C... par LaDentDeLait
Source avec Zip COMBINAISONS DE STRINGS par askil2000

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture DÉFILEMENT D'UN TEXTE SOUS FORME D'IMAGE SUR UN AFFICHEUR À ... par zwail1
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

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 administrateur CS

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 administrateur CS

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 !

Commentaire de Bacterius le 09/04/2011 16:45:39

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.

:)

Commentaire de Caribensila le 09/04/2011 17:23:54

Héhéhé.

Moi, c'était il y a 7 ans :
http://www.delphifr.com/codes/TRANSFERT-INSTANTANE-VARIABLE-ENTRE-UNITES_19799.aspx

Ce n'était pas révolutionnaire non plus...  lol

Le plus marrant c'est que je me sens toujours aussi débutant. Il n'y a que les problèmes qui ont changés...

 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 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 executer une fonction en delphi [ par inegliz ] bonjour ! j'ai une fonction getusername(en delphi6) que j'ai mis dans l'unite principale du projet , je dois l'executer a partir de mes procedures , j 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é 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,796 sec (4)

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