1 /* cac.c - crypt and compare
11 int main(int argc, char *argv[]) {
13 FILE *shadow_h, *passwd_h;
18 printf("usage: %s <shadow-file> <password-file>\n",argv[0]);
22 shadow_h=fopen(argv[1],"r");
24 printf("error: cant open %s for reading\n",argv[1]);
27 printf("reading %s\n",argv[1]);
29 passwd_h=fopen(argv[2],"r");
31 printf("error: cant open %s for reading\n",argv[2]);
34 printf("using %s as passwd library\n",argv[2]);
37 while(fgets(temp,256,shadow_h)) {
38 if(strstr(temp,"root")) {
39 /* none md5 way ... */
41 while(fgets(temp2,30,passwd_h)) {
42 int mylen=strlen(temp2);
43 if((mylen>=1) && (temp2[mylen-1]=='\n')) {
44 if((mylen>=2) && (temp2[mylen-2]==0x0d)) {
53 if(strncmp(crypt(temp2,(temp+5)),(temp+5),13)==0) {
54 printf("succes: %s\n",argv[2]);