用C语言编写两个个程序,完成题目要求并保证其在devc++上正常运行。题目要求:13、文件加密:利用移位加密算法,自设定密钥(例如, 53124)对一个文本文件(txt)进行加密。4、文件加密:利用逐字节异或加密法对一个文本文件(txt)进行加密。(自设密码)
时间: 2024-04-12 19:26:41 浏览: 25
好的,我将为您提供两个C语言程序来完成您的要求。
第一个程序使用移位加密算法对文本文件进行加密,密钥为53124。您可以将要加密的文本文件放在程序同一目录下,并将其命名为"input.txt"。加密后的结果将保存在"output.txt"中。
```c
#include <stdio.h>
void shift_encrypt(char *key, FILE *input, FILE *output) {
char ch;
int i = 0;
while ((ch = fgetc(input)) != EOF) {
ch = ch + key[i] - '0'; // 移位加密
fputc(ch, output);
// 循环使用密钥
i++;
if (key[i] == '\0') {
i = 0;
}
}
}
int main() {
char key[] = "53124";
FILE *input, *output;
input = fopen("input.txt", "r");
output = fopen("output.txt", "w");
if (input == NULL || output == NULL) {
printf("无法打开文件\n");
return 1;
}
shift_encrypt(key, input, output);
printf("文件加密完成\n");
fclose(input);
fclose(output);
return 0;
}
```
第二个程序使用逐字节异或加密法对文本文件进行加密。您可以将要加密的文本文件放在程序同一目录下,并将其命名为"input.txt"。加密后的结果将保存在"output.txt"中。
```c
#include <stdio.h>
void xor_encrypt(char *password, FILE *input, FILE *output) {
char ch;
int i = 0;
while ((ch = fgetc(input)) != EOF) {
ch = ch ^ password[i]; // 逐字节异或加密
fputc(ch, output);
// 循环使用密码
i++;
if (password[i] == '\0') {
i = 0;
}
}
}
int main() {
char password[] = "mypassword";
FILE *input, *output;
input = fopen("input.txt", "r");
output = fopen("output.txt", "w");
if (input == NULL || output == NULL) {
printf("无法打开文件\n");
return 1;
}
xor_encrypt(password, input, output);
printf("文件加密完成\n");
fclose(input);
fclose(output);
return 0;
}
```
请在Dev-C++中创建两个新的项目,将上述代码分别复制到两个项目中的源文件中,并构建运行。这样,您就可以在Dev-C++上正常运行这两个程序,对文本文件进行加密了。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)