blob: 4d575fb351fa67b8dc39cf03966d1008d1c1d352 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <openssl/md5.h>
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);
}
|