1. 程式人生 > >c++檔案的加密與解密

c++檔案的加密與解密

<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>