以下是一个使用C语言实现的简单登录界面程序,包含用户名和密码验证功能:
#include <stdio.h>
#include <string.h>
#define MAX_ATTEMPTS 3
#define USERNAME "admin"
#define PASSWORD "secure123"
int main() {
char input_user[20];
char input_pass[20];
int attempts = 0;
int authenticated = 0;
printf("\n====== 登录系统 ======\n");
while (attempts < MAX_ATTEMPTS && !authenticated) {
// 获取用户名输入
printf("\n用户名: ");
scanf("%19s", input_user);
// 获取密码输入
printf("密码: ");
scanf("%19s", input_pass);
// 验证凭据
if (strcmp(input_user, USERNAME) == 0 &&
strcmp(input_pass, PASSWORD) == 0) {
authenticated = 1;
printf("\n✔ 登录成功!欢迎回来,%s。\n", USERNAME);
} else {
attempts++;
printf("\n✘ 用户名或密码错误!剩余尝试次数: %d\n",
MAX_ATTEMPTS - attempts);
}
}
if (!authenticated) {
printf("\n⚠ 超过最大尝试次数,系统已锁定!\n");
}
return 0;
}
功能说明:
-
预定义凭证:
- 用户名:
admin - 密码:
secure123 - 最大尝试次数:3次
- 用户名:
-
程序流程:
- 显示登录界面标题
- 循环提示输入用户名和密码
- 验证输入是否匹配预定义凭证
- 成功时显示欢迎信息
- 失败时显示剩余尝试次数
- 超过最大尝试次数后锁定系统
-
安全特性:
- 使用
%19s限制输入长度防止缓冲区溢出 - 密码输入为明文(实际应用中应使用加密存储)
- 尝试次数限制防止暴力破解
- 使用
使用示例:
====== 登录系统 ======
用户名: guest
密码: wrongpass
✘ 用户名或密码错误!剩余尝试次数: 2
用户名: admin
密码: 123456
✘ 用户名或密码错误!剩余尝试次数: 1
用户名: admin
密码: secure123
✔ 登录成功!欢迎回来,admin。
改进建议:实际应用中可添加以下功能:
- 密码隐藏输入(使用
getch())- 凭证数据库存储
- 密码加密(如SHA-256)
- 账户锁定机制
- 日志记录功能
1万+

被折叠的 条评论
为什么被折叠?



