最近在學關於檔案的操作,感覺檔案加密還有點意思,所以認真學了下,並做了一個簡單的總結。下面就講其中的一種方法-命令加密法。
所謂命令加密法,就是指示使用者鍵入一個完整的檔案名稱,包含檔案路徑和檔案名稱,如後輸入加密密碼,就可以對指定檔案進行加密了。
加密的原理:讀出檔案中的字元,然後與自己輸入的加密密碼進行異或,然後寫到新的檔案中。解密過程與加密原理一樣。
程式編寫如下:
#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語言的檔案加密技術”。