C语言文件加密解密:算法源码、自定义密钥与命令行使用
以下是一个示例的C语言加密和解密算法的源码,使用了简单的置换密码算法:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void encryptFile(FILE* inputFile, FILE* outputFile, char* key) {
int keyLength = strlen(key);
int i = 0;
char ch;
while ((ch = fgetc(inputFile)) != EOF) {
ch = ch ^ key[i % keyLength];
fputc(ch, outputFile);
i++;
}
}
void decryptFile(FILE* inputFile, FILE* outputFile, char* key) {
encryptFile(inputFile, outputFile, key); // 解密和加密操作相同
}
int main(int argc, char* argv[]) {
if (argc < 4) {
printf("Usage: %s <input_file> <output_file> <key>
", argv[0]);
return 1;
}
char* inputFile = argv[1];
char* outputFile = argv[2];
char* key = argv[3];
FILE* input = fopen(inputFile, "rb");
FILE* output = fopen(outputFile, "wb");
if (input == NULL || output == NULL) {
printf("Error opening file.
");
return 1;
}
encryptFile(input, output, key);
fclose(input);
fclose(output);
printf("File encrypted successfully.
");
return 0;
}
这段代码实现了一个简单的文件加密和解密功能。你可以在命令行中使用以下命令来加密一个文件:
./program_name input_file output_file key
其中,program_name 是编译后的可执行文件名,input_file 是要加密的文件名,output_file 是加密后的文件名,key 是自定义的密钥字符串。
要解密一个文件,可以使用相同的命令,只需将 input_file 和 output_file 交换位置即可。
代码说明:
- 自定义密钥: 代码中
key变量用于存储自定义的密钥字符串。你可以根据需要修改key的值。 - 异或运算: 代码使用异或运算
^来进行加密和解密。异或运算是一种简单的对称加密算法,加密和解密使用相同的密钥。
使用说明:
- 编译代码:使用
gcc编译器将代码编译成可执行文件。 - 运行程序:在命令行中输入
./program_name input_file output_file key来执行程序,其中program_name是编译后的可执行文件名,input_file是要加密的文件名,output_file是加密后的文件名,key是自定义的密钥字符串。
安全提示:
此代码仅用于学习和演示,不适用于实际安全需求。在实际应用中,应该使用更强大的加密算法和密钥管理机制。
请注意,这只是一个简单的示例,不适用于实际安全需求。在实际应用中,应该使用更强大的加密算法和密钥管理机制。
原文地址: https://www.cveoy.top/t/topic/paCi 著作权归作者所有。请勿转载和采集!