Password generator

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

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.