1. 项目背景与需求分析
在C语言程序设计中,文件操作是系统级开发的重要基础技能。《C语言程序设计第四版》第十二章专门讲解了文件I/O的相关知识,其中账号密码加密是一个典型的应用场景。这个案例的价值在于:
- 教学价值:综合运用文件读写、数据加密、用户验证等核心知识点
- 实用价值:实际开发中用户认证系统的简化原型
- 安全意义:演示最基本的敏感信息保护方法
传统的学生管理系统常采用明文存储密码,存在严重安全隐患。通过本案例,我们可以实现:
- 用户注册时将密码加密后存入文件
- 登录时验证加密后的密码
- 数据文件中的密码信息不以明文形式暴露
2. 核心实现方案设计
2.1 技术选型与原理
采用最简单的异或(XOR)加密算法,虽然安全性不如专业加密算法,但适合教学演示:
c复制void xor_encrypt(char *str, char key) {
for(int i = 0; str[i] != '\0'; i++) {
str[i] = str[i] ^ key; // 逐字符异或运算
}
}
算法特点:
- 可逆性:A ^ B ^ B = A
- 相同密钥加密和解密
- 运算效率高
2.2 文件存储结构设计
使用文本文件存储用户数据,每行一条记录,格式为:
code复制用户名:加密后的密码
示例文件内容:
code复制admin:q|we
user1:p`ty
2.3 程序流程设计
mermaid复制graph TD
A[开始] --> B{选择操作}
B -->|注册| C[输入用户名密码]
B -->|登录| D[输入用户名密码]
C --> E[密码加密]
E --> F[写入文件]
D --> G[读取文件]
G --> H[验证密码]
3. 完整代码实现
3.1 基础函数实现
c复制#include <stdio.h>
#include <string.h>
#define MAX_USER 50
#define MAX_LEN 20
// 加密函数
void xor_encrypt(char *
