关于C++加密的问题
本帖最后由 azhao_123 于 2013-12-14 17:18:39 编辑 Crypt.cpp
#include "stdafx.h"
#include "Crypt.h"
#include "SUBPATH.h"
#include "GLOGIC.h"
#include "../Common/IniLoader.h"
#include "../Common/GLTexFile.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
namespace CCrypt
{
BOOLbCryptRCC = TRUE;
BOOLbEngineDebug = TRUE;
void LoadSetting( const TCHAR *szRootPath )
{
CString strFileName = szRootPath;
strFileName += "\\GameSet.ini";
CIniLoader cFILE;
DWORDdwKey = 0;
if( cFILE.open( strFileName.GetString(), true) )
{
cFILE.SetUseErrorMsgBox( FALSE );
cFILE.getflag ( "GAME_SET", "dwCryptKey", 0, 1, dwKey );
cFILE.getflag ( "GAME_SET", "bEngineDebug", 0, 1, bEngineDebug );
}
else
{
CDebugSet::ToLogFile("CCrypt::LoadSetting Cant Load Setting File");
}
if ( dwKey == 7892756 )bCryptRCC = FALSE;
}
void Encryption(BYTE *B ,int dwSize)
{
for( int i = 0 ; i < dwSize ; i ++ )
{
B[i] = B[i] ^ EN;
B[i] += ( EN ^ EN2 );
};
return ;
}
void Decryption(BYTE *B,int dwSize)
{
for( int i = 0 ; i < dwSize ; i ++ )
{
B[i] -= ( EN ^ EN2 );
B[i] = B[i] ^ EN;
};
return ;
}
};
#ifndef NEOEASYCRYPTION_TEST_
#define NEOEASYCRYPTION_TEST_
#pragma once
namespace CCrypt
{
enum
{
EN = 17244896787,
EN2 = 12348733,
END = 4,
/*
EN = 0x5FFF2AAF,
EN2 = 0x1AEDAA0A,
END = 0x03,*/
};
enum
{
ENTYPE_ALL,
};
enum
{
ENCRY_VER = 0x100,
ENCRY_HEADER_SIZE = 12,
};
extern BOOLbCryptRCC;
extern BOOLbEngineDebug;
void Encryption(BYTE* B,int dwSize);
void Decryption(BYTE* B,int dwSize);
void LoadSetting( const TCHAR *szRootPath );
};
#endif