文件加密c程序
时间: 2023-08-22 18:09:58 浏览: 62
文件加密程序
以下是一个简单的文件加密程序的示例代码,使用了C语言的标准库函数和文件操作函数:
```c
#include <stdio.h>
#include <string.h>
#define KEY "secret key" // 加密密钥
int main(int argc, char *argv[]) {
if (argc != 3) {
printf("Usage: %s [input file] [output file]\n", argv[0]);
return 1;
}
FILE *fin = fopen(argv[1], "rb");
if (!fin) {
printf("Failed to open input file '%s'\n", argv[1]);
return 1;
}
FILE *fout = fopen(argv[2], "wb");
if (!fout) {
fclose(fin);
printf("Failed to open output file '%s'\n", argv[2]);
return 1;
}
char key[strlen(KEY) + 1];
strcpy(key, KEY);
unsigned char buffer[1024];
size_t read_size = 0;
size_t write_size = 0;
while (!feof(fin)) {
read_size = fread(buffer, sizeof(unsigned char), sizeof(buffer), fin);
for (size_t i = 0; i < read_size; i++) {
buffer[i] ^= key[i % strlen(key)];
}
write_size = fwrite(buffer, sizeof(unsigned char), read_size, fout);
if (write_size != read_size) {
printf("Failed to write to output file '%s'\n", argv[2]);
fclose(fin);
fclose(fout);
return 1;
}
}
fclose(fin);
fclose(fout);
return 0;
}
```
该程序使用了一个简单的异或加密算法,将输入文件中的每个字节与密钥进行异或运算,然后写入输出文件中。使用方法如下:
```
$ gcc -o encrypt encrypt.c
$ ./encrypt input.txt output.txt
```
其中`input.txt`是待加密的文件,`output.txt`是加密后的输出文件。可以将`KEY`常量替换为您自己的密钥。注意这种简单的加密算法并不足够安全,仅供参考和学习。
阅读全文