#define _XOPEN_SOURCE 4 #include #include /*isupper(3)*/ #include /*crypt(3)*/ #include #if HAVE_CRYPT_H #include /*crypt(3)*/ #endif #define E stderr #ifdef DEBUG #define message fprintf #else #define message (void) #endif void Scramble( char *s ); int Eval( char *s ); int main( argc, argv ) int argc; char *argv[]; { if( argc < 2 ){ /*stream mode*/ char u[64], s[1024]; int i; while (0>6&3]); Scramble(s); printf("%s %d\n", u, Eval(s)); } return 0; } Scramble( argv[1] ); printf( "%d\n",Eval(argv[1]) ); return 0; } void Scramble( s ) char *s; { int ii,len; char *tmp; len = strlen(s); message(E, "ORIG:%s\n", s); for( ii = 2 ; ii < len ; ii++ ){ //message(E, "crypt(%.8s,%.2s)\n", &s[ii], &s[ii-2]); tmp = crypt( &s[ii], &s[ii-2] ); s[ii] = tmp[((ii-2) % (strlen(tmp)-2))+2]; } message(E, "FIGH:%s\n", s); } int Eval( s ) char *s; { int ii; int len, total = 0; len = strlen(s); for( ii = 2 ; ii < len ; ii++ ) total += (isupper(s[ii])?(s[ii]*16): (islower(s[ii])?(s[ii]*8): (isdigit(s[ii])?(s[ii]): (-(s[ii]*32))))); return(total); }