首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于C++加密的有关问题

2014-01-15 
关于C++加密的问题本帖最后由 azhao_123 于 2013-12-14 17:18:39 编辑Crypt.cpp#include stdafx.h#inclu

关于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 ;
}
};


Crypt.h
#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


我是新手,我想更换这个程序的加密算法,但没成功。
更换7892756这个,和没更换一样。

更换17244896787和12348733之后程序没办法读取加密的文件。

请各位大哥指点一下,谢谢!



[解决办法]
这个算法应用的上下文是什么?
7892756 这个值只是牵扯到bCryptRCC?这个flag的设置,什么时候回去check这个flag?
17244896787和12348733 这两个只是加密算法里面的值,修改之后不应该影响正常文件的读取

热点排行