Password generator

Soyez le premier à donner votre avis sur cette source.

Vue 10 448 fois - Téléchargée 484 fois

Description

C'est un Générateur de mot de passes, qui utilise une technique que j'ai élaborer,
Le programme génère une matrice qui sera utilisé pour générer les mots
Le principe est simple: la matrice générée ne contient pas les mots de passe mais simplement les indices des caractères du mot de passe
Soit un tableau de caractères carList="abcdABDC", est un générateur de mots de passe d'une taille de 3 caracteres, la matrice sera de dimentions L,C
C=taille de mot (szPW)
L=(taille de carList)puissance szPW
mat[i][j] = int(i/pow(szBuff,j)) %szBuff;// je ne vais pas démontrer la formule

Le programme stock le résultat dans un fichier
par la suite je l'est modifié pour diviser le fichier en plusieurs parties

Source / Exemple :


/**----------------------------------
Password Generator

    • - By Stillfelil --*
-------------------------------------*/ #include <stdio.h> #include <stdlib.h> #include <string> #include <math.h> using namespace std; void genPsw(const char* file,double ideb,double iend,const char* carList,int szPW); int main(){ const char* carList = "azertyuiopmlkjhgfdsqwxcvbnAZERTYUIOPMLKJHGFDSQWXCVBN0123456789"; int szPW = 2; int szBuff = strlen(carList); double L = pow(szBuff,szPW); printf("%f = %d ^ %d\n",L,szBuff,szPW); int nbrFiles = 10; double dev = L / nbrFiles; char res[30]; sprintf(res,"%.0f",dev); dev = atof(res); for(double i=0;i<nbrFiles;i++) { string fname("psw.txt"); char sNum[10]; sprintf(sNum,"%.0f",i); fname += sNum; double ideb = dev*i; double iend = dev*(i+1); printf("deb:%f , end=%f ",dev,ideb,iend); genPsw(fname.c_str(),ideb,iend,carList,szPW); } return 0; } void genPsw(const char* file,double ideb,double iend,const char* carList,int szPW /*-- Taille du password --*/){ FILE* File = fopen(file,"w"); int szBuff = strlen(carList); /*-- Taille du tableau de caracteres --*/ double L = pow(szBuff,szPW); /*-- Nombre de lignes de la matrice (Nombre de password a generer) --*/ int* mat = new int[szPW]; /*- La matrice (le password a generer) -*/ printf("Generation... "); for(double i=ideb; i< (iend<L?iend:L); i++) { for(int j=0; j<szPW; j++) { mat[j] = int(i/pow(szBuff,j)) %szBuff; unsigned long int num = mat[j]; /*printf("%d",mat[j]);*/ fprintf(File, "%c",carList[num]); } /*printf("\n");*/ fprintf(File,"\n"); } printf("done !\n"); fclose(File); }

Conclusion :


Si vous modifiez le source, veillez poster en m'envoyer les modifs SVP
MErci

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_stillfelil
Messages postés
108
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
12 septembre 2009
2 -
Il faut le compiler d'abord avec gcc ou g++ puis lancer le fichier
pour compiler: g++ -o ton_binaire ton_source
rafale32
Messages postés
1
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
11 septembre 2009
-
euh comment on lance le fichier
cs_stillfelil
Messages postés
108
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
12 septembre 2009
2 -
C'est un generateur d'un password Dictionary
cs_petifa
Messages postés
215
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
10 mars 2014
-
heu j'ai pas tout saisi, c'est une générateur de mot de passe, ou plus un generateur de mot que tu peux faire avec les lettres...
cs_stillfelil
Messages postés
108
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
12 septembre 2009
2 -
Le truc c'est pas de génerer un nombre aléatoire, j'en est trouvé des tas comme ça, mais de génerer toutes les possibilités, un random n'a rien a voir la dedans
Cette fonction te donne tous les mots de passe possible pour une taille donnée

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.