Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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 !
 

Commentaires et avis

signaler à un administrateur
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 !

signaler à un administrateur
Commentaire de cantador le 09/03/2008 15:32:43

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

signaler à un administrateur
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 !

signaler à un administrateur
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

signaler à un administrateur
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

signaler à un administrateur
Commentaire de cantador le 09/03/2008 18:41:15

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

signaler à un administrateur
Commentaire de Bacterius le 09/03/2008 19:56:29

Ah ok :s

signaler à un administrateur
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

signaler à un administrateur
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

signaler à un administrateur
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.

signaler à un administrateur
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+

signaler à un administrateur
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é ClipCursor incompatible avec WinMe [ par Pasqwal ] Bonjour à vous tousvoila j'utilise la fonction ClipCursor dans un de mes programme et je constate que cette fonction ne marche pas sous windows Me (et Fonction isnumeric [ par Kane ] Existe t'il une implantation de cette fonction vb sur delphi ?car moi je fais un bon vieux val(s,b,e)mais a chaque fois le compilo me rappel que ma va fichier texte et delphi [ par sebou74 ] je souhaite ecrire dans un fichier texte des valeurs recuperes par une procedurele probleme c'est que touters les valeurs doivent etre separees par un Créer une fenetre à partir d'une ressource [ par sebastienbro ] Bonjour!Je vous explique mon prob.Je suis dans une dll, et je doit afficher une fenetre à l'écran.La fenetre est stocké dans un fichier .res, et intég


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,827 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.