8
typedef unsigned char type8;
10
#error "Can't find an 8-bit integer type"
13
#if INT_MAX==0x7fffffff
14
typedef unsigned int type32;
15
#elif LONG_MAX==0x7fffffff
16
typedef unsigned long type32;
18
#error "Can't find a 32-bit integer type"
21
type8 obfuscate(type8 c) {
29
if ((state & 1) ^ ((state>>1) & 1)) state|=0x80;
37
int main(int argc, char **argv) {
39
type8 tmp,name[128],result[128],pad[]="MAGNETICSCR";
43
printf("Usage: %s string\n",argv[0]);
47
for (i=j=0;i<strlen(argv[1]);i++) {
48
if (argv[1][i]!=0x20) name[j++]=toupper(argv[1][i]);
52
tmp=name[strlen(name)-1];
53
if ((tmp=='#') || (tmp==']')) name[strlen(name)-1]=0;
55
if (strlen(name)<12) {
56
for (i=strlen(name),j=0;i<12;i++,j++) name[i]=pad[j];
63
tmp=obfuscate(name[i++]);
64
if (name[i]) tmp+=obfuscate(name[i++]);
71
printf("The password for \"%s\" is: %s\n",argv[1],result);