c++檔案的加密與解密
阿新 • • 發佈:2019-01-10
<span style="font-family:KaiTi_GB2312;font-size:18px;">// FileEncryDecry.cpp : 定義控制檯應用程式的入口點。 // /* 利用異或預算對檔案進行加密 主要是讀取檔案中的字元 對每個字元對KEY進行異或運算儲存到另外一個檔案中 從而實現加密的功能 由於異或的性質 加密解密可以使用同一個函式 */ #include "stdafx.h" #include <filesystem> #include <stdlib.h> #define OK 0 #define ERR -1 #define KEY 0xa9 int FileConvert(char szOldFile[],char szNewFile[]) { FILE *pOldFile=NULL; FILE *pNewFile=NULL;//指標初始化為NULL char cTemp; if(szOldFile==NULL||szNewFile==NULL) { return ERR; } pOldFile=fopen(szOldFile,"rb");//二進位制讀寫檔案 if(pOldFile==NULL) { return ERR; } pNewFile=fopen(szNewFile,"wb"); if(pNewFile==NULL) { fclose(pOldFile); return ERR; } //一定要先讀取字元然後做檔案末尾判斷 cTemp=fgetc(pOldFile); while(!feof(pOldFile))//遇到檔案結束 返回值為0 { putchar(cTemp); fputc(cTemp,pNewFile); cTemp=fgetc(pOldFile)^KEY;//異或運算加密檔案 } fclose(pOldFile); fclose(pNewFile);//用完檔案之後需要關閉檔案 return OK; } int _tmain(int argc, _TCHAR* argv[]) { char szFile1[]="1.txt"; char szFile2[]="2.txt"; char szFile3[]="3.txt";//可以修改不同的檔案格式 FileConvert(szFile1,szFile2); system("pause"); return 0; } </span>