简易文件加密解密程序

最近在看C语言的文件操作,写了一个简易的文件加密解密程序

下面是源码

#include <stdio.h>
#include <stdlib.h>
void txtSecret(char *s)//加密文件内容
{
while(*s)
{
(*s)++;
s++;
}
}
void unSecret(char *s)//解密文件内容
{
while(*s)
{
(*s)–;
s++;
}
}
int main(int argc, char *argv[])
{
FILE*fp1;
fp1=fopen(“./source.txt”,”r”);//打开source.txt源文件
if(fp1==NULL){printf(“file open ERR\n”);}
FILE*fp2;
fp2=fopen(“./secret.dat”,”w+”);//创建secret.dat加密文件
if(fp2==NULL){printf(“file open ERR\n”);}
FILE*fp3;
fp3=fopen(“./source.txt”,”w+”);//恢复source.txt的内容
if(fp3==NULL){printf(“file open ERR\n”);}
char str[1024];
while(!feof(fp1))//加密过程
{
memset(str,0,sizeof(str));//将STR的内容清零
fgets(str,sizeof(str),fp1);
txtSecret(str);
fputs(str,fp2);
}
puts(“文件已加密\n”);
fclose(fp2);
fp2=fopen(“./secret.dat”,”r”);
while(!feof(fp2))//解密过程
{
memset(str,0,sizeof(str));//将STR的内容清零
fgets(str,sizeof(str),fp2);
unSecret(str);
fputs(str,fp3);
puts(“文件解密中\n”);
}
puts(“文件已解密\n”);
fclose(fp1);
fclose(fp2);
fclose(fp3);
system(“PAUSE”);
return 0;
}

将源码一分为二做成了两个独立的部分

下面是加密部分

#include <stdio.h>
#include <stdlib.h>
void txtSecret(char *s)//加密文件
{
while(*s)
{
(*s)++;
s++;
}
}
int main(int argc, char *argv[])
{
FILE*fp1;
fp1=fopen(“./source.txt”,”r”);//打开source.txt源文件
if(fp1==NULL){printf(“file open ERR\n”);}
FILE*fp2;
fp2=fopen(“./secret.dat”,”w+”);//创建secret.dat加密文件
if(fp2==NULL){printf(“file open ERR\n”);}
char str[1024];
while(!feof(fp1))
{
memset(str,0,sizeof(str));//将STR的内容清零
fgets(str,sizeof(str),fp1);
txtSecret(str);
fputs(str,fp2);
}
puts(“文件已加密\n”);
fclose(fp2);
fp1=fopen(“./source.txt”,”w+”);//注意此语句会清空source.txt中的内容
fclose(fp1);
system(“PAUSE”);
return 0;
}

下面是解密部分

#include <stdio.h>
#include <stdlib.h>
void unSecret(char *s)//解密文件
{
while(*s)
{
(*s)–;
s++;
}
}
int main(int argc, char *argv[])
{
FILE*fp2;
fp2=fopen(“./secret.dat”,”r”);//打开secret.dat加密文件
if(fp2==NULL){printf(“file open ERR\n”);}
FILE*fp3;
fp3=fopen(“./source.txt”,”w+”);//恢复source.txt文件的内容
if(fp3==NULL){printf(“file open ERR\n”);}
char str[1024];
while(!feof(fp2))
{
memset(str,0,sizeof(str));//将STR的内容清零
fgets(str,sizeof(str),fp2);
unSecret(str);
fputs(str,fp3);
puts(“文件解密中\n”);
}
puts(“文件已解密\n”);
fclose(fp2);
fclose(fp3);
system(“PAUSE”);
return 0;
}

简易文件加密解密程序

转载请注明来源:幽幽过客_{简易文件加密解密程序}