1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhienchen-Cexp

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
f12-4.c 1.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
zhienchen Отправлено 07.01.2019 11:54 d30d2b1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct userinfo { /*定义用户信息库结构体*/
char username[20];
char password[8];
};
int checkUserValid(char *,char *);
void unencrypt(char *pd); /*解密函数*/
int main() {
char username[20]; /*定义验证用户信息*/
char password[8];
printf("Enter the sysuser(name password):");
scanf("%s%s", username, password); /*输入验证用户信息*/
if( checkUserValid(username,password) ){ /*如果返回1,则提示“Valid user!”,否则输出“Invalid user!”*/
printf("Valid user!\n");
}else{
printf("Invalid user!\n");
}
return 0;
}
int checkUserValid(char *username,char *password) {
FILE *fp;
int i;
struct userinfo su;
if((fp = fopen("f12-2.txt", "r")) == NULL) { /*以只读形式打开f12-2.txt文件*/
printf("File open error!\n");
exit(0);
}
for(i = 1; i <= 5; i++) {
fscanf(fp,"%s%s", su.username, su.password);
unencrypt(su.password); /*对密码解密*/ //printf("%s %s\n",su.username, su.password);
if( strcmp(username,su.username)==0 && strcmp(password,su.password)==0 ) return 1;
}
if(fclose(fp)) { /*关闭文件*/
printf("Can not close the file!\n");
exit(0);
}
return 0;
}
void unencrypt(char *pd){ /*解密函数*/
int i;
for(i = 0; i < strlen(pd); i++)
pd[i] = pd[i] ^ 15; /*再次对每个字符ASCII码的低四位求反,高四位保持不变。
(即将其与15进行异或)*/
}
/*如果可尝试多次登录,将打开文件,关闭文件的模块放于main()中应该会更好*/

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zhienchen-Cexp.git
git@api.gitlife.ru:oschina-mirror/zhienchen-Cexp.git
oschina-mirror
zhienchen-Cexp
zhienchen-Cexp
master