salve qualcuno sa perche non mi fa compilare questo codice?:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
char hash[40],parola[99000000][15],wordlist[15],tmp[40];
FILE *fp;
printf("inserisci l'hash da decifraresha1)\t");
scanf("%s",hash);
printf("inserisci wordlist:\t");
scanf("%s",wordlist);
fp=fopen(wordlist,"r");
while(!feof(fp))
{
tmp=system("echo -n %s | sha1sum",parola[i]);
if(tmp==hash)
{
printf("pass:\t%s",parola[i]);
break;
}
i++;
}
fclose(fp);
printf("fine");
return 0;
}

sha1)\t");
Rispondi quotando
il costo di creare un processo esterno (anzi, almeno due visto che system chiama /bin/sh) è superiore di diversi ordini di grandezza rispetto al costo di calcolare l'hash. Se vuoi andare a velocità vagamente decenti come minimo devi incorporare l'algoritmo di SHA1 direttamente nel tuo programma. In ogni caso non arrivi nemmeno vicino a quello che fa un programma come hashcat (che usa algoritmi estremamente ottimizzati e li fa girare in parallelo su GPU), ma almeno fai lavorare la CPU sul problema effettivo invece di fare perdere tempo al sistema operativo a lanciare processi inutilmente.
