1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      文件加密技術一例

      更新時間: 2007-06-01 10:07:28來源: 粵嵌教育瀏覽量:637


        給文件加密的技術很多,其中又分為不同等級,以適合不同場合的需要.這里給出簡單的文件加密技術,即采用文件逐字節與密碼異或方式對文件進行加密,當解密時,只需再運行一遍加密程序即可.

        下面是一個實例程序,能對任意一個文件進行加密,密碼要求用戶輸入,限8位以內(當然你可以再更改).程序有很好的容錯設計,這是我們應該學習的.

      /* Turbo 2.0 pass. give file a password! */

      #include<stdio.h>
      #include<stdlib.h>
      #include<conio.h>
      #include<string.h>

      void dofile(char *in_fname,char *pwd,char *out_fname);/*對文件進行加密的具體函數*/

      void main(int argc,char *argv[])/*定義main()函數的命令行參數*/
      {
      char in_fname[30];/*用戶輸入的要加密的文件名*/
      char out_fname[30];
      char pwd[8];/*用來保存密碼*/

      if(argc!=4){/*容錯處理*/
      printf("\nIn-fname:\n");
      gets(in_fname);/*得到要加密的文件名*/

      printf("Password:\n");
      gets(pwd);/*得到密碼*/

      printf("Out-file:\n");
      gets(out_fname);/*得到加密后你要的文件名*/

      dofile(in_fname,pwd,out_fname);
      }
      else{/*如果命令行參數正確,便直接運行程序*/
      strcpy(in_fname,argv[1]);
      strcpy(pwd,argv[2]);
      strcpy(out_fname,argv[3]);
      dofile(in_fname,pwd,out_fname);
      }

      }

      /*加密子函數開始*/
      void dofile(char *in_fname,char *pwd,char *out_file)
      {
      FILE *fp1,*fp2;
      register char ch;
      int j=0;
      int j0=0;

      fp1=fopen(in_fname,"rb");
      if(fp1==NULL){
      printf("cannot open in-file.\n");
      exit(1);/*如果不能打開要加密的文件,便退出程序*/
      }
      fp2=fopen(out_file,"wb");
      if(fp2==NULL){
      printf("cannot open or create out-file.\n");
      exit(1);/*如果不能建立加密后的文件,便退出*/
      }
      while(pwd[++j0]);
      ch=fgetc(fp1);

      /*加密算法開始*/
      while(!feof(fp1)){
      fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*異或后寫入fp2文件*/
      ch=fgetc(fp1);
      }
      fclose(fp1);/*關閉源文件*/
      fclose(fp2);/*關閉目標文件*/
      }

      /*程序結束*/

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲一区二区在线 | 一区二区三区视频在线观看 | 午夜国产理论片中文飘花 | 亚洲精选视频一区动态图 | 亚洲欧美制服丝袜精品久久 | 亚洲一区欧美激情 |