c语言文件加密和解密

2022-04-06 科技 245阅读

  c语言文件加密和解密方法如下:

  1、首先打开VC++6.0;

  2、选择文件,新建;

  3、选择C++sourcefile新建一个空白文档;

  4、声明头文件

  #include

  #include

  #include


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

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  {
  ch=(ch-'a'+1)%26+'a';
  ch=ch^pwd;
  }
  if((ch>='A')&&(ch  {
  ch=(ch-'A'+1)%26+'A';
  ch=ch^pwd;
  }
  fputc(ch,dfp);
  }
  }

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

 void DecryptFile(FILE *sfp,FILE *dfp,char pwd)
  {
  char ch;
  while((ch=fgetc(sfp))!=EOF)
  {
  if((ch>='a')&&(ch  {
  ch=ch^pwd;
  ch=(ch-'a'+25)%26+'a';
  }
  if((ch>='A')&&(ch  {
  ch=ch^pwd;
  ch=(ch-'A'+25)%26+'A';
  }
  fputc(ch,dfp);
  }
  }

  输出函数,输出文件内容
  void OutputFile(FILE *fp)
  {
  char ch;
  while((ch=fgetc(fp))!=EOF)
  putchar(ch);
  }
   主函数,主要调用这几个函数
  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;
  }


 

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com