diff options
Diffstat (limited to '5b.c')
-rw-r--r-- | 5b.c | 33 |
1 files changed, 33 insertions, 0 deletions
@@ -0,0 +1,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); +} |