[c++] Passlist Generator

Stato
Discussione chiusa ad ulteriori risposte.

jacoboss

Utente Silver
18 Novembre 2007
63
9
0
72
bene se avete qualche ora a disposizione provate pure questo programmino che permette di generare tutte le possibili combinazioni di password di lunghezza variabile da 1 A 8 caratteri di lunghezza altrimenti se sapete quanto è lunga la pass in partenza tagliate i for che non vi servono e ciao.
programma effettivamente inutile perchè il bruteforce si fa solo sui file di word ormai... volevo svagarmi un pò, in effetti un bruter che usa le classi è utile come un'ascia col mirino...
comunque usato con elzapopc o free word excell pasword wizard forse qualcosa ci fate
enjoy
Codice:
/* jacopo Mazzoni 23/06/2009
// generatore di password
// che prevede tutte le permutazioni alfanumeriche
// senza simboli da 1 a 8 caratteri 
// più una sega mentale per non pensare all'esame che altro */
#define ALFABETO "1234567890qwertyuiopasdfghjklzxcvbnm"
#include <fstream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
using namespace std;

void asciibar8(int n);
void asciibar36(int n);

class Dizionario{
public:
	char getel(int n);
	int getlen();
	Dizionario();
	~Dizionario();
private:
	char* Alfabeto;
};

void main (void)
{
	int a,b,c,d,e,f,g,h,l;
	a=b=c=d=e=f=g=h=0;
	Dizionario Diz;
	l=Diz.getlen();
	ofstream f_out;
	f_out.open ("passlist.txt");

	//fstream f_out("c:\\passlist.txt",ios::out);
	cout<<"generatore di password la durata di ogni tacca cresce esponenzialmente in base "<<l<<endl;
	system("pause");
	
	for (; a<l ;a++)//combinazioni 1 carattere
	{
		f_out <<Diz.getel(a)<<endl;
		system("cls");
		asciibar8(1);
		if(l=37) asciibar36(a);
	}
	a=0;
	asciibar8(1);
	
	for (; a<l ;a++)//combinazioni 2 caratteri
	{
		system("cls");
		asciibar8(2);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			f_out <<Diz.getel(a)<<Diz.getel(b)<<endl;
		}
		b=0;
	}
	a=b=0;
	system("cls");
	asciibar8(2);
	
	for (; a<l ;a++)//combinazioni 3 caratteri
	{
		system("cls");
		asciibar8(3);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<endl;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=0;
	system("cls");
	asciibar8(3);
	
	for (; a<l ;a++)//combinazioni 4 caratteri
	{
		system("cls");
		asciibar8(4);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<endl;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=0;
	system("cls");
	asciibar8(4);
	
	for (; a<l ;a++)//combinazioni 5 caratteri
	{
		system("cls");
		asciibar8(5);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					for (;e<l;e++)
					{
						f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<Diz.getel(e)<<endl;
								
					}e=0;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=e=0;
	asciibar8(5);
	
	for (; a<l ;a++)//combinazioni 6 caratteri
	{
		system("cls");
		asciibar8(6);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					for (;e<l;e++)
					{
						for (;f<l;f++)
						{
							f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<Diz.getel(e)<<Diz.getel(f)<<endl;								
						}
						f=0;
					}e=0;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=e=f=0;
	asciibar8(6);
for (; a<l ;a++)//combinazioni 7 caratteri
	{
		system("cls");
		asciibar8();
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					for (;e<l;e++)
					{
						for (;f<l;f++)
						{
							for (;g<l;g++)
							{
								f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<Diz.getel(e)<<Diz.getel(f)<<Diz.getel(g)<<endl;
							}
							g=0;
						}
						f=0;
					}e=0;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=e=f=g=0;
	asciibar8(7);

	for (; a<l ;a++)//combinazioni 8 caratteri
	{
		system("cls");
		asciibar8(8);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					for (;e<l;e++)
					{
						for (;f<l;f++)
						{
							for (;g<l;g++)
							{
								for (;h<l;h++)
								{
									f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<Diz.getel(e)<<Diz.getel(f)<<Diz.getel(g)<<Diz.getel(h)<<endl;
								}
								h=0;
							}
							g=0;
						}
						f=0;
					}e=0;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=e=f=g=h=0;
	asciibar8(8);

	f_out.close();
}

void asciibar8(int n)
{
	int vett[8]={0,0,0,0,0,0,0,0};
	
	for (int i=0;i<n && i<8;i++)
	{
		vett[i]=1;
	}
	
	for (int a=0;a<2;a++)
	{
		for(i=0;i<8;i++)
		{
			cout<<char(177+vett[i])<<char(177+vett[i]);
		}
		cout<<endl;
	}
	cout<<endl;
};

void asciibar36(int n)
{
	int vett[36];
	for (int f =0;f<36;f++)
		vett[f]=0;
	
	for (int i=0;i<n && i<36;i++)
	{
		vett[i]=1;
	}
	
	for(i=0;i<36;i++)
	{
		cout<<char(177+vett[i]);
	}
	cout<<endl;
};

Dizionario::~Dizionario()
{
	delete [] this->Alfabeto;
};

Dizionario::Dizionario()
{
	this->Alfabeto=new char [strlen(ALFABETO)+1];
	strcpy(this->Alfabeto,ALFABETO);
};

int Dizionario::getlen()
{
	return (strlen(this->Alfabeto)+1);
};
char Dizionario::getel(int n)
{
	return this->Alfabeto[n];
};
versione più sensata:
Codice:
/* jacopo Mazzoni 23/06/2009
// generatore di password
// che prevede tutte le permutazioni alfanumeriche
// senza simboli da 1 a 8 caratteri 
// più una sega mentale per non pensare all'esame che altro */

#define ALFABETO "1234567890qwertyuiopasdfghjklzxcvbnm"

#include <fstream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
using namespace std;

void asciibar8(int n);
void asciibar36(int n);

void main (void)
{
	char dizionario []={ALFABETO};
	int a,b,c,d,e,f,g,h,l;
	a=b=c=d=e=f=g=h=0;
	Dizionario Diz;
	l=strlen(ALFABETO)+1;
	ofstream f_out;
	f_out.open ("pass.txt");

	cout<<"generatore di password la durata di ogni tacca cresce esponenzialmente in base "<<l<<endl;
	system("pause");
	
	for (; a<l ;a++)//combinazioni 1 carattere
	{
		f_out <<Diz.getel(a)<<endl;
		system("cls");
		asciibar8(1);
		if(l=37) asciibar36(a);
	}
	a=0;
	asciibar8(1);
	
	for (; a<l ;a++)//combinazioni 2 caratteri
	{
		system("cls");
		asciibar8(2);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			f_out <<Diz.getel(a)<<Diz.getel(b)<<endl;
		}
		b=0;
	}
	a=b=0;
	system("cls");
	asciibar8(2);
	
	for (; a<l ;a++)//combinazioni 3 caratteri
	{
		system("cls");
		asciibar8(3);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<endl;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=0;
	system("cls");
	asciibar8(3);
	
	for (; a<l ;a++)//combinazioni 4 caratteri
	{
		system("cls");
		asciibar8(4);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<endl;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=0;
	system("cls");
	asciibar8(4);
	
	for (; a<l ;a++)//combinazioni 5 caratteri
	{
		system("cls");
		asciibar8(5);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					for (;e<l;e++)
					{
						f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<Diz.getel(e)<<endl;
								
					}e=0;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=e=0;
	asciibar8(5);
	
	for (; a<l ;a++)//combinazioni 6 caratteri
	{
		system("cls");
		asciibar8(6);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					for (;e<l;e++)
					{
						for (;f<l;f++)
						{
							f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<Diz.getel(e)<<Diz.getel(f)<<endl;								
						}
						f=0;
					}e=0;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=e=f=0;
	asciibar8(6);
for (; a<l ;a++)//combinazioni 7 caratteri
	{
		system("cls");
		asciibar8();
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					for (;e<l;e++)
					{
						for (;f<l;f++)
						{
							for (;g<l;g++)
							{
								f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<Diz.getel(e)<<Diz.getel(f)<<Diz.getel(g)<<endl;
							}
							g=0;
						}
						f=0;
					}e=0;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=e=f=g=0;
	asciibar8(7);

	for (; a<l ;a++)//combinazioni 8 caratteri
	{
		system("cls");
		asciibar8(8);
		if(l=37) asciibar36(a);
		for (; b<l ;b++)
		{
			for (;c<l;c++)
			{
				for (;d<l;d++)
				{
					for (;e<l;e++)
					{
						for (;f<l;f++)
						{
							for (;g<l;g++)
							{
								for (;h<l;h++)
								{
									f_out <<Diz.getel(a)<<Diz.getel(b)<<Diz.getel(c)<<Diz.getel(d)<<Diz.getel(e)<<Diz.getel(f)<<Diz.getel(g)<<Diz.getel(h)<<endl;
								}
								h=0;
							}
							g=0;
						}
						f=0;
					}e=0;
				}
				d=0;
			}
			c=0;
		}
		b=0;
	}
	a=b=c=d=e=f=g=h=0;
	asciibar8(8);

	f_out.close();
}

void asciibar8(int n)
{
	int vett[8]={0,0,0,0,0,0,0,0};
	
	for (int i=0;i<n && i<8;i++)
	{
		vett[i]=1;
	}
	
	for (int a=0;a<2;a++)
	{
		for(i=0;i<8;i++)
		{
			cout<<char(177+vett[i])<<char(177+vett[i]);
		}
		cout<<endl;
	}
	cout<<endl;
};

void asciibar36(int n)
{
	int vett[36];
	for (int f =0;f<36;f++)
		vett[f]=0;
	
	for (int i=0;i<n && i<36;i++)
	{
		vett[i]=1;
	}
	
	for(i=0;i<36;i++)
	{
		cout<<char(177+vett[i]);
	}
	cout<<endl;
};
 
cioè tipo:
Codice:
from string import printable
f=open("C:\\pass.txt",'w')
for i in printable:
    f.write(i)
    for j in printable:
        f.write(i+j)
        for x in printable:
            f.write(i+j+x)
            for y in printable:
                f.write(i+j+x+y)
                for z in printable:
                    f.write(i+j+x+y+z)
                    for a in printable:
                        f.write(i+j+x+y+z+a)
                        for b in printable:
                            f.write(i+j+x+y+z+a+b)
                            for c in printable:
                                f.write(i+j+x+y+z+a+b+c)
f.close()

questo ma a classi?
 
Malex ha detto:
cioè tipo:
Codice:
from string import printable
f=open("C:\\pass.txt",'w')
for i in printable:
    f.write(i)
    for j in printable:
        f.write(i+j)
        for x in printable:
            f.write(i+j+x)
            for y in printable:
                f.write(i+j+x+y)
                for z in printable:
                    f.write(i+j+x+y+z)
                    for a in printable:
                        f.write(i+j+x+y+z+a)
                        for b in printable:
                            f.write(i+j+x+y+z+a+b)
                            for c in printable:
                                f.write(i+j+x+y+z+a+b+c)
f.close()

questo ma a classi?

che linguaggio è?
 
Stato
Discussione chiusa ad ulteriori risposte.