#include #include #include #include int main(void){ int counter=0; char inbuf[100]; unsigned char outbuf[16]; int prelen; scanf("%s%n",inbuf,&prelen); char passbuf[9]; strcpy(passbuf,"________"); fprintf(stderr,"%s",passbuf); for(int i=0;i<8;i++){ while(true){ int len=prelen+sprintf(inbuf+prelen,"%d",counter); counter++; MD5((const unsigned char*)inbuf,len,outbuf); if(outbuf[0]==0&&outbuf[1]==0&&(outbuf[2]>>4)==0){ if((outbuf[2]&0xf)<8&&passbuf[outbuf[2]&0xf]=='_'){ passbuf[outbuf[2]&0xf]="0123456789abcdef"[outbuf[3]>>4]; fprintf(stderr,"\r%s",passbuf); break; } } } } fputc('\n',stderr); printf("%s\n",passbuf); }