- 论坛徽章:
- 0
|
程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#define SALT "abc"
struct userInfo {
char *username;
char *passwd;
};
struct userInfo defaultInfo = {
"zhangsan",
"ab2IzmxtmU/5g"
};
int check(void)
{
char buf[100];
int ret;
int val = 0;
write(1, "Username:", 9);
ret = read(0, buf, 99);
if (buf[ret] == '\n')
buf[ret -1] = '\0';
else
buf[ret -1] = '\0';
if (strcmp(buf, defaultInfo.username) == 0)
{
write(1, "Password:", 9);
ret = read(0, buf, 99);
if (buf[ret] == '\n')
buf[ret - 1] = '\0';
else
buf[ret - 1] = '\0';
if (strcmp((char *)crypt(buf, SALT),
defaultInfo.passwd) == 0)
{
val = 1;
}
else
{
val = 0;
}
}
else
{
val = 0;
}
return val;
}
int main(void)
{
int i, flag = 0;
for (i = 0; i < 3; i++)
{
if (check() == 0)
{
flag = 0;
continue;
}
else
{
flag = 1;
break;
}
}
if (flag == 1)
{
printf("check ok!\n");
}else
{
printf("check NG!\n");
}
}
用户名:zhangsan
密码: zhangsan
验证通过!
但我输入zhangsanaa 验证也通过
crypt加密有些出入,感到费解,请各位支援! |
|