#include<stdlib.h>
#include<time.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
char *password()
{
char a[10], i;
for(i=0; ; )
{
a[i] = getch();
if(a[i] == 8)
{
printf("\b \b");
i--;
}
else
if(a[i] == 13)
{
a[i] ='\0';
break;
}
else
{
putchar('*');
i++;
}
}
return a;
}
void check()
{
char s1[5], s2[5];
int i, m, n;
srand( (unsigned)time(NULL) );
do
{
for(i=0; i<4; i++)
{
m = rand()%3; //设定验证码中数字与字母比例为1:2.
if(m==0)
{
n = rand()%10; //0~~9
s1[i] = '0'+n ;
}
else
{
m=rand()%2; //设定大写字母与小写字母为1:1.
n=rand()%26;//0~25
if(m==0)
s1[i] = 'a'+n;
else
s1[i] = 'A'+n;
}
}
s1[i] = '\0';
puts(s1);
printf("\n");
fflush(stdin);
gets(s2);
if( !strcmp(s1, s2))
{
printf("验证码正确,登陆成功!\n");
break;
}
else
printf("\n验证码错误,请重新输入以下验证码:\n\n");
}while( strcmp(s1, s2) );
}
int main()
{
char *s;
printf("请输入密码( 密码长度小于10 ):\n\n");
s = password();
while( strcmp(s, "123456") )
{
printf("\n\n密码错误,请再次输入密码:\n\n");
s = password();
}
printf("\n请输入以下验证码:\n\n");
check();
return 0;
}