用C语言1) 写一个加密程序,对文件1txt进行加密。它从输入流中读入一个密钥,并将文件密文输出。采用下面的简单加密算法: 1)读入密钥的key是一个字符串; 2)明文中字符c的密文为c^key[i]; 3)循环使用key中的各个字符,直至处理完全部明文。如果key为空,则不作加密 4)解密时,用同一个key重新加密密文,就可以得到明文。
时间: 2024-02-24 18:56:09 浏览: 13
以下是使用C语言编写的文件加密程序:
```
#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 256
int main() {
FILE *sourceFile, *destFile;
char buffer[BUFFER_SIZE];
char key[BUFFER_SIZE];
int keyIndex = 0;
// 读取密钥
printf("请输入密钥:");
fgets(key, BUFFER_SIZE, stdin);
key[strlen(key) - 1] = '\0'; // 去掉换行符
// 打开源文件
sourceFile = fopen("1.txt", "rb");
if (sourceFile == NULL) {
printf("无法打开源文件。\n");
return 1;
}
// 创建目标文件
destFile = fopen("1_encrypted.txt", "wb");
if (destFile == NULL) {
printf("无法创建目标文件。\n");
fclose(sourceFile);
return 1;
}
// 加密文件内容
while (fread(buffer, 1, BUFFER_SIZE, sourceFile) > 0) {
for (int i = 0; i < BUFFER_SIZE; i++) {
if (key[keyIndex] == '\0') {
keyIndex = 0;
}
buffer[i] = buffer[i] ^ key[keyIndex];
keyIndex++;
}
fwrite(buffer, 1, BUFFER_SIZE, destFile);
}
// 关闭文件
fclose(sourceFile);
fclose(destFile);
printf("文件加密成功!\n");
return 0;
}
```
该程序首先读取用户输入的密钥,然后使用fopen()打开源文件和创建目标文件。程序使用fread()函数从源文件中读取数据,对每个字符执行异或运算,以实现加密。最后,程序使用fwrite()函数将加密后的数据写入目标文件。