#include
#include
#include
#define LEN 20
int Verification(const char*, char*);
int passwordinput(char*);
int main(void)
{
char name[LEN];
char password[8];
char *pt;
char *pp;
pt = name;
pp = password;
printf("Please enter 6 user name!: ");
gets(name);
while(Verification(pt,pp) != 1);
puts("welcome come to C world!\n");
return 0;
}
int passwordinput(char* pp) {
char ch;
int count = 0;
printf("Please enter 7 word password!: ");
while( (ch = getch()) != '\r') {
*(pp++) = ch;
putchar('*');
count++;
}
putchar('\n');
return count;
}
int Verification(const char *pt, char *pp)
{
char namecode[8];
char ch;
short j;
int cons = 355325;
while(passwordinput(pp) != 7) ;
while((ch = *(pt++)) != '\0') {
cons *= ch;
}
printf("%d\n",cons);
for(j = 0;j<7;j++) {
namecode[j] = cons >> j+1;
namecode[j] = namecode[j] & 127;
if(namecode[j] < 'O') {
namecode[j] = namecode[j]%10 + '0';
} else if(namecode[j] < 'm') {
namecode[j] = (namecode[j]%24) + 'A';
} else {
namecode[j] = (namecode[j]%24) + 'a';
}
printf("%c %d\n", namecode[j],namecode[j]);
}
namecode[7] = '\0';
puts(namecode);
if(strcmp(namecode,pp) !=0) {
puts("password error! Please re input password!");
return 0;
}
return 1;
}