PDA

Visualizza la versione completa : Combinazioni password


alessand097
09-02-2014, 19:48
Ciao a tutti ragazzi, allora ora vi spiego il mio problema..
cercavo in rete un generatore di tutti i caratteri sulla tastiera e dopo averli generati, di salvarli su un file .txt, qualcosa ho trovato ma mi sono impicciato all'ultimo..quando vado ad eseguire il programma, non mi da tutte le combinazioni possibili, ma solo il risultato..poi capirete vedendo il programma..

il programma è scritto in C++ ed è questo:


#include <stdio.h>
#include <fstream>
using namespace std;
//note: Eliminare se si inietta = ESSI
//note: Sostituire se si inietta = SSSI


int main ()
{
int i,j,k=0,l,ch,sv=128,cd1,cd2=0;
char c[127];
char b[127];
char a,ct;


/*(ESSI) {------------------###Lettura password###-------------------------*/
printf("Inserisci password max di 127 char\n");/*mettere controller 127 caratteri*/
for(i=0;i<127&&(c[i-1]!=10);++i) c[i]=getchar();
i=i-1;
/*(ESSI) }------------------######################-------------------------*/
//variabili bloccate: i
printf("Si conosce il numero esatto di caratteri della password? [s] [n]");ct=getchar();
while (cd2==0)
{
if (ct==110||ct==78) /*n*/
{
while(sv>127||sv<i) /*(SSSI) {(22,37)-(22,43)} ##||sv<1##*/
{
printf("Inserire la massima lunghezza possibile della password (min 1,max 127), se sconosciuta scrivere 127: ");
scanf("%d",&sv);printf("\n");
if (sv>127||sv<i) printf("\nErrore, numero di caratteri inserito troppo grande oppure troppo piccolo\n"); /*(SSSI) {(26,43)-(26,49)} ##||sv<1##*/
};
cd2=1;
};
if (ct==115||ct==83) /*s*/
{
while(sv!=i) /*(SSSI) {(32,31)-(32,36)} ##sv>127||sv<1##*/
{
printf("Inserire la lunghezza della password (min 1,max 127): ");
scanf("%d",&sv);printf("\n");
if (sv!=i) printf("\nErrore, numero di caratteri inserito troppo grande oppure troppo piccolo\n"); /*(SSSI) {(36,37)-(36,42)} ##sv>127||sv<1##*/
};
cd2=1;
};
if (ct!=115&&ct!=83&&ct!=110&&ct!=78)
{
printf("Errore di digitazione, si conosce il numero esatto di caratteri della password? [s] [n]");ct=getchar();ct=getchar();
};
}; cd2=0;
//variabili bloccate: sv


if (ct==110||ct==78)
{
for(ch=1;ch<=sv&&cd2==0;++ch)
//variabili bloccate: ch
{
for(l=0;l<=(ch-1);++l) b[l]=32;
while (k<ch&&cd2==0)
{
k=0;
/*(SSSI) {------------------####Controllo pswd####-------------------------*/
cd1=0;
for(l=0;l<(i);++l)
{
if (l>ch) cd1=0; else {if (c[l]==b[l]) ++cd1;};
};
if (cd1>=(i)) cd2=1;
else {for(j=0;j<ch;++j) printf("%c",b[j]);printf(" no\n");};/*<= Eliminare per aumentare di ~100 volte la velocità di esecuzione*/
/*(SSSI) }------------------######################-------------------------*/
//variabili sbloccate: i
while (b[ch-k-1]>=126&&cd2==0) {b[ch-k-1]=32;++k;};
if (k<9&&cd2==0) ++b[ch-k-1];
};
printf("Password \212 di %d caratteri \n",ch);/*giusto per aver un resoconto se si elimina riga 63*/
};
};


if (ct==115||ct==83)
{
for(l=0;l<=(sv-1);++l) b[l]=32;
while (k<(sv)&&cd2==0)
{
k=0;
/*(SSSI) {------------------####Controllo pswd####-------------------------*/
cd1=0;
for(l=0;l<(i);++l)
{
if (c[l]==b[l]) ++cd1;
};
if (cd1>=(i)) cd2=1;
else {for(j=0;j<sv;++j) printf("%c",b[j]);printf(" no\n");};/*<= Eliminare per aumentare di ~100 volte la velocità di esecuzione*/
/*(SSSI) }------------------######################-------------------------*/
//variabili sbloccate: i

while (b[sv-k-1]>=126&&cd2==0) {b[sv-k-1]=32;++k;};
if (k<128&&cd2==0) ++b[sv-k-1];
};
};
if(cd2==1){printf("La password \212: "); for(j=0;j<sv;++j) printf("%c",b[j]);}
else{printf("La password non è nel range controllato dal programma");};

//-----------------------------salvataggio file------------------------------------
{
ofstream file;
file.open("c:\\prova.txt");
file <<"la password e' "<<b;
file.close();
}


a=getchar();a=getchar();
return 0;
}


//Errori noti: se durante la lettura di ct, si inserisce "ss","sn","nn",... si ha un errore.
//Se nella lettura temporanea della password si inseriscono più di 127 caratteri si possono avere errori (dovrebbero essere poi legati a ct).
//Se nella lettura temporanea della password si inseriscono caratteri speciali al di fuori di quelli compresi tra ASCII 32 - ASCII 126 (es. é) il numero di caratteri riconosciuti dal programma cresce di 1...




spero almeno voi mi sappiate dare una mano..grazie in anticipo

Samuele_70
09-02-2014, 20:43
Ciao, è un programma davvero mal scritto. Ad ogni modo se metti la scrittura nel file fuori dal ciclo in cui vengono generate la password, è ovvio che nel file scriverai solamente l'ultima password generata.

oregon
09-02-2014, 20:52
Ancora a cercare le password ... ? ... :nonono:

alessand097
09-02-2014, 21:37
si lo so, infatti ho messo quella solo per un esempio per mettere qualcosa..ho provato a metterci di tutto e non esce niente..

sai cosa ci dovrei scrivere lì per farmi comparire nel file di testo tutte le combinazioni??
o visto che il file è scritto male, sapresti sistemarmelo tu o riscriverlo da capo spiegandomi almeno i passaggi più importanti? (anche se penso riuscirei a capirli)

alessand097
09-02-2014, 21:57
oregon sei off topic :)

oregon
09-02-2014, 22:01
oregon sei off topic :)

Il problema è proprio il topic !

Comunque, se vuoi scrivere un "brute force" per trovare una password, riscrivilo da zero perché quel codice è veramente assurdo.

Se poi non sai ancora farlo, beh, studia il linguaggio ...

alessand097
09-02-2014, 22:37
commenti solo per farti vedere!ma falla finita..scrivi ad ogni topic!ma levate

se non sai farlo tu, allora stai zitto e non farmi perdere tempo che forse ci sarà qualcuno che un aiuto vuole darlo :)

oregon
09-02-2014, 22:55
commenti solo per farti vedere!ma falla finita..scrivi ad ogni topic!ma levate

se non sai farlo tu, allora stai zitto e non farmi perdere tempo che forse ci sarà qualcuno che un aiuto vuole darlo :)

Datti una calmata ... qui siamo tutti educati ...

Ti ho detto che quel codice è da riscrivere e lo confermo.

alessand097
09-02-2014, 23:16
sono calmo :) visto che tu sei tanto bravo, postalo tu il codice tanto perfetto :) ti ringrazierei ;) ;)

oregon
09-02-2014, 23:20
No, qui è vietato postare codice completo.

Loading