基於C語言的檔案加密技術

來源:互聯網
上載者:User

最近在學關於檔案的操作,感覺檔案加密還有點意思,所以認真學了下,並做了一個簡單的總結。下面就講其中的一種方法-命令加密法。

所謂命令加密法,就是指示使用者鍵入一個完整的檔案名稱,包含檔案路徑和檔案名稱,如後輸入加密密碼,就可以對指定檔案進行加密了。

加密的原理:讀出檔案中的字元,然後與自己輸入的加密密碼進行異或,然後寫到新的檔案中。解密過程與加密原理一樣。

程式編寫如下:

#include <stdio.h>

#pragma hdrstop

#include <tchar.h>

#pragma argsused

int _tmain(int argc, _TCHAR* argv[])

{

       FILE *file1,*file2;

       int i;

       int paslen;

       char ch;

       char source[30],destin[30],password[10];

       printf("Please input the source file(less than 30 charcters):\n");

       gets(source);

       printf("please input the destination file(less than 30 charcters):\n");

       gets(destin);

       printf("please input the password(less than 10 ditigals):\n");

       gets(password);

       paslen=strlen(password);//擷取密碼長度

       if((file1=fopen(source,"rb"))!=NULL)

       {

              printf("the source file %s opened successfully.\n",source);

              if((file2=fopen(destin,"wb+"))!=NULL)

              {

                     printf("the destination file %s created successfully\n",destin);

                     ch=fgetc(file1);

                     i=0;

                     while(ch!=EOF)

                     {

                            ch=ch^(password[i++]); //利用密碼進行加密

                            if(i>=paslen)

                            i=0;

                            fputc(ch,file2);

                            ch=fgetc(file1);

                     }

                     fclose(file1);

                     fclose(file2);

              }

              else

              {

                     printf("the destination file %s created error\n",destin);

              }

       }

       else

       {

              printf("the source file %s opened error.\n",source);

       }

       getchar();

       return 0;

}

由於啟動並執行結果顯示不了,不好意思啊。我將會把我的總結髮到csdn.net裡,需要的話去下載一下,畢竟是花了不好時間學習總結的,所以還是需要點積分的,大家見諒啊,有不足的大家可以跟我交流啊。謝謝!檔案中包含了三種常用的加密方法,包括原理,演算法,程式和運行結果,多些支援啊! 我csdn.net的使用者名稱為andamajing,檔案名稱為“基於C語言的檔案加密技術”。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.