c++文件的加密与解密

// FileEncryDecry.cpp : 定义控制台应用程序的入口点。
//
/*
利用异或预算对文件进行加密  主要是读取文件中的字符 
对每个字符对KEY进行异或运算保存到另外一个文件中  从而实现加密的功能
由于异或的性质 加密解密可以使用同一个函数 
*/

#include "stdafx.h"
#include 
#include 

#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;
}

你可能感兴趣的:(c++文件的加密与解密)