C语言实现文件加密解密

2025-10-15 10:59:40

1、首先打开VC++6.0

C语言实现文件加密解密

2、选择文件,新建

C语言实现文件加密解密

3、选择C++ source file 新建一个空白文档

C语言实现文件加密解密

4、声明头文件

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

C语言实现文件加密解密

5、首先写个加密函数,算法就是简介里说的

void EncryptFile(FILE *sfp,FILE *dfp,char pwd)

{

char ch;

if(sfp==0||dfp==0)

{

printf("ERROR!\n");

return;

}

while((ch=fgetc(sfp))!=EOF)

{

if((ch>='a')&&(ch<='z'))

{

ch=(ch-'a'+1)%26+'a';

ch=ch^pwd;

}

if((ch>='A')&&(ch<='Z'))

{

ch=(ch-'A'+1)%26+'A';

ch=ch^pwd;

}

fputc(ch,dfp);

}

}

C语言实现文件加密解密

6、写解密子函数:与加密的过程相反

void DecryptFile(FILE *sfp,FILE *dfp,char pwd)

{

char ch;

while((ch=fgetc(sfp))!=EOF)

{

if((ch>='a')&&(ch<='z'))

{

ch=ch^pwd;

ch=(ch-'a'+25)%26+'a';

}

if((ch>='A')&&(ch<='Z'))

{

ch=ch^pwd;

ch=(ch-'A'+25)%26+'A';

}

fputc(ch,dfp);

}

}

C语言实现文件加密解密

7、输出函数,输出文件内容

void OutputFile(FILE *fp)

{

char ch;

while((ch=fgetc(fp))!=EOF)

putchar(ch);

}

C语言实现文件加密解密

8、主函数,主要调用这几个函数

int main()

{

/*用户输入的要加密的文件名*/

char sfilename[20];

/*用户输入加密后保存的文件名*/

   char dfilename[20];

   /*用来保存密码字符*/

   char pwd;

   FILE *sfp,*dfp;

   printf("\nPlease input filename to be encrypted:\n");

   /*得到要加密的文件名*/

   gets(sfilename);

   /*得到加密后你要的文件名*/

printf("input filename to save the encrypted file:\n");

gets(dfilename);

/*得到加密字符*/

printf("Please input your Password:\n");

//scanf("%c",&pwd);

pwd=getch();

/*屏幕以*来表示输入的加密字符*/

printf("*\n");

   /*以只读方式打开要加密的文件*/

if((sfp=fopen(sfilename,"r"))==0)

{

printf("Can't open the file :%s\n",sfilename);

exit(0);

}

/*输出要加密的文件*/

printf("\nThe the text of file to be encrypted is:\n");

OutputFile(sfp);

/*建立加密后的文件*/

if((dfp=fopen(dfilename,"w+"))==0)

{

   printf("Can't open or create the file :%s\n",dfilename);

   //exit(0);

   }

/*文件加密*/

fseek(sfp,0L,SEEK_SET);

  EncryptFile(sfp,dfp,pwd);

  printf("\n\nEncrypted the file successfully!\n");

/*输出加密后的文件*/

printf("\nAfter encrypting the text of file is:\n");

fseek(dfp,0L,SEEK_SET);

OutputFile(dfp);

fclose(sfp);

fclose(dfp);

getch();

return 0;

}

C语言实现文件加密解密

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢