你好
我想请问一下你的那篇--文件的简单加密和解密那篇文章有没有代码可以给我参考一下
有,你可以直接下载那个资源
供参考:
//功能:
//(1)对文件的字符根据加密算法,实现文件加密。
//(2)对操作给出必要的提示。
//(3)对存在的file1.txt文件,先打开,后读写,最后关闭。加密后的文件放在file2.txt。
//(4)解密文件保存在file3.txt中
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
void encryption(char* text, int key)//加密
{
char* ptr = NULL;
for (ptr = text; *ptr; ptr++) {
if (isalpha(*ptr))
isupper(*ptr) ? *ptr = (*ptr - 'A' + key) % 26 + 'A' :
*ptr = (*ptr - 'a' + key) % 26 + 'a';
}
*ptr = '\0';
}
void decrypt(char* text, int key)//解密
{
char* ptr = NULL;
for (ptr = text; *ptr; ptr++) {
if (isalpha(*ptr))
isupper(*ptr) ? *ptr = (*ptr - 'A' - key + 26) % 26 + 'A' :
*ptr = (*ptr - 'a' - key + 26) % 26 + 'a';
}
*ptr = '\0';
}
void fread_file(char* filename, char* text)
{
FILE* fp; int i = 0;
fp = fopen(filename, "r");
if (fp == NULL) {
printf("打开的文件不存在!\n");
exit(0);
}
while ((text[i] = fgetc(fp)) != EOF) i++;
fclose(fp);
}
void write_file(char* filename, char* text)
{
FILE* fp;
fp = fopen(filename, "w");
if (fp == NULL) {
printf("无法打开文件!\n");
exit(0);
}
fprintf(fp, "%s", text);
fclose(fp);
}
int main()
{
int m, n;
char text[4096] = { 0 }, ptext[4096] = { 0 };
printf("读入要加密的明文:");
fread_file("file1.txt", text); //gets(text, 4096); 从键盘读入字符串
printf("%s\n", text);
printf("输入学号:");
scanf("%d", &m);
m % 10 == 0 ? n = 10 : n = m % 10;//密钥:以学号尾号为秘钥进行加密(例:尾号为0则秘钥为10)
encryption(text, n);
printf("加密后的密文为:%s\n", text);
write_file("file2.txt", text); //加密后的文件放在file2.txt
fread_file("file2.txt", ptext);
decrypt(ptext, n);
printf("解密后的明文为:%s\n", ptext);
write_file("file3.txt", ptext);//解密文件保存在file3.txt中
return 0;
}