1)用c语言 写一个加密程序,对文件1txt进行加密。它从输入流中读入一个密钥,并将文件密文输出。采用下面的简单加密算法: 1)读入密钥的key是一个字符串; 2)明文中字符c的密文为c^key[i]; 3)循环使用key中的各个字符,直至处理完全部明文。如果key为空,则不作加密 4)解密时,用同一个key重新加密密文,就可以得到明文。
时间: 2024-02-24 21:00:33 浏览: 103
以下是一个简单的加密程序示例,代码中注释有详细的说明:
```c
#include <stdio.h>
#include <string.h>
#define MAX_KEY_LEN 100
void encrypt(char *key, FILE *in, FILE *out) {
int i = 0, key_len = strlen(key);
char ch, encrypted_ch;
while ((ch = fgetc(in)) != EOF) {
// 如果key为空,则不作加密
if (key_len == 0) {
encrypted_ch = ch;
} else {
encrypted_ch = ch ^ key[i];
i = (i + 1) % key_len; // 循环使用key中的各个字符
}
fputc(encrypted_ch, out);
}
}
int main() {
char key[MAX_KEY_LEN + 1]; // key的长度最多为MAX_KEY_LEN
FILE *in_file, *out_file;
// 打开输入文件和输出文件
in_file = fopen("file1.txt", "r");
out_file = fopen("file1_encrypted.txt", "w");
if (in_file == NULL || out_file == NULL) {
printf("Error: cannot open file.\n");
return 1;
}
printf("Please enter the encryption key: ");
scanf("%s", key);
encrypt(key, in_file, out_file);
// 关闭文件
fclose(in_file);
fclose(out_file);
printf("Encryption complete.\n");
return 0;
}
```
请注意,这只是一个简单的加密程序示例,不是安全的加密算法。在实际应用中,需要使用更加复杂的加密算法,以确保加密数据的安全。同时,为了防止被恶意攻击,应避免在代码中直接使用密钥等敏感信息,而是应该使用专门的密钥管理工具。
阅读全文