//brian jahns C1999
//takes and 8 digit code and cracks it by trying every combination
//using all capital letters, all 10 digits and a hyphen

#include <iostream.h>
#include <time.h>

void load(char[]);

int max=38;
int maxcode=8;

int main()
{
char digit[max];
char code[maxcode];
long int numcodes=0;
int starttime=0;
int endtime=0;
int ftime=0;

load(digit);

starttime=time(0);

for (int a=0; a<max;a++)
{
code[0]=digit[a];
for (int b=0; b<max;b++)
{
code[1]=digit[b];
for (int c=0;c<max;c++)
{
code[2]=digit[c];
for (int d=0;d<max;d++)
{
code[3]=digit[d];
for (int e=0;e<max;e++)
{
code[4]=digit[e];
for (int f=0;f<max;f++)
{
code[5]=digit[f];
for (int g=0;g<max;g++)
{
code[6]=digit[g];
for (int h=0;h<max;h++)
{
code[7]=digit[h];
for (int i=0;i<max;i++)
{
code[8]=digit[i];
numcodes++;
for (int j=0; j<8;j++)
cout<< code[j];
cout<<" number of codes: "<<numcodes;
cout<<endl;
}
}
}
}
}
}
}
}
}
endtime=time(0);
ftime=endtime-starttime;
cout<<(ftime/60/60)<< " hours " <<((ftime/60)-(ftime/60/60))<< " mintues "
<<((ftime)-(ftime/60/60)-(ftime/60))<<" seconds" <<endl;

return 0;
}

void load(char digit[37])
{
digit[0]='A';
digit[1]='B';
digit[2]='C';
digit[3]='D';
digit[4]='E';
digit[5]='F';
digit[6]='G';
digit[7]='H';
digit[8]='I';
digit[9]='J';
digit[10]='K';
digit[11]='L';
digit[12]='M';
digit[13]='N';
digit[14]='O';
digit[15]='P';
digit[16]='Q';
digit[17]='R';
digit[18]='S';
digit[19]='T';
digit[20]='U';
digit[21]='V';
digit[22]='W';
digit[23]='X';
digit[24]='Y';
digit[25]='Z';
digit[26]='1';
digit[27]='2';
digit[28]='3';
digit[29]='4';
digit[30]='5';
digit[31]='6';
digit[32]='7';
digit[33]='8';
digit[34]='9';
digit[35]='0';
digit[37]='-';

return;
}