位置: 编程技术 - 正文
推荐整理分享cocos2dx 使用 crypto++(cocos2d解密),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:cocos2d怎么用,cocos2d schedule,cocos2d解密,cocos2d怎么用,cocos2dx 使用什么语言写脚本,cocos2dx 使用canvas,cocos2dx 使用语言,cocos2dx 使用curl,内容如对您有帮助,希望把文章链接给更多的朋友!
#include "rc2.h"
using namespace CryptoPP;
//RC2加密解密类
class cRC2Test
{
public:
//设置key
static void setKey(const unsigned char* pKey);
//加密
static std::string encode(conststd::string& rStr);
//解密
static std::string decode(conststd::string& rStr);
private:
//加密RC2块
static void encodeBlock(unsignedchar* pData, unsignedchar* pOut);
//解密RC2块
static void decodeBlock(unsignedchar* pData, unsignedchar* pOut);
private:
//RC2 key
staticunsigned charsm_cKey[RC2::DEFAULT_KEYLENGTH];
//RC2加密类
static RC2Encryption sm_rcEncr;
//RC2解密类
static RC2Decryption sm_rcDecr;
};
cRC2Test.cpp
#include<vector>
#include<string>
using namespacestd;
//静态变量定义
unsigned char cRC2Test::sm_cKey[RC2::DEFAULT_KEYLENGTH] = {0,};
RC2EncryptioncRC2Test::sm_rcEncr;
RC2DecryptioncRC2Test::sm_rcDecr;
void cRC2Test::setKey(const unsigned char* pKey)
{
memset(sm_cKey,0,sizeof(sm_cKey));
//保存key
memcpy(sm_cKey,pKey, RC2::DEFAULT_KEYLENGTH);
//对加密器与解密器设置key
sm_rcEncr.SetKey(sm_cKey, RC2::DEFAULT_KEYLENGTH);
sm_rcDecr.SetKey(sm_cKey, RC2::DEFAULT_KEYLENGTH);
}
std::stringcRC2Test::encode(conststd::string& rStr)
{
size_t strIndex =0;
size_t strLen =rStr.size();
//保存加密后的数据
vector<unsignedchar> vBuffer;
//保存加密后的临时数据块
unsigned char rcBlock[RC2::BLOCKSIZE];
unsigned char *ptr = (unsigned char*)rStr.c_str();
//遍历字符串
while(strIndex <strLen) {
memset(rcBlock,0, RC2::BLOCKSIZE);
//加密一块数据
encodeBlock(&ptr[strIndex],rcBlock);
//保存加密结果
vBuffer.insert(vBuffer.end(), rcBlock, rcBlockRC2::BLOCKSIZE);
strIndex = RC2::BLOCKSIZE;
}
return string(vBuffer.begin(), vBuffer.end());
}
std::stringcRC2Test::decode(conststd::string& rStr)
{
size_t strIndex =0;
size_t strLen =rStr.size();
//保存解密后的数据
vector<unsignedchar> vBuffer;
//保存解密后的临时数据块
unsigned char rcOut[];
unsigned char *ptr = (unsigned char*)rStr.c_str();
//遍历字符串
while(strIndex <strLen) {
memset(rcOut,0, sizeof(rcOut));
//解密一块数据
decodeBlock(&ptr[strIndex],rcOut);
//保存解密结果
vBuffer.insert(vBuffer.end(), rcOut, rcOutstrlen((char*)rcOut));
strIndex = RC2::BLOCKSIZE;
}
return string(vBuffer.begin(), vBuffer.end());
}
voidcRC2Test::encodeBlock(unsignedchar* pData, unsignedchar* pOut)
{
sm_rcEncr.ProcessBlock(pData, pOut);
}
voidcRC2Test::decodeBlock(unsignedchar* pData, unsignedchar* pOut)
{
sm_rcDecr.ProcessBlock(pData, pOut);
}
测试代码:main.cpp
unsigned char pkey[RC2::DEFAULT_KEYLENGTH];
stringtestData = "测试";
cRC2Test::setKey(pkey);
stringsEncode = cRC2Test::encode(testData);
cout<<cRC2Test::decode(sEncode);
在ios与android上测试通过。版权声明:本文为博主原创文章,未经博主允许不得转载。
cocos2dx AudioEngine初体验,音效播放结束判断测试 由于simpleAudioEngine在播放音效时无法获取状态也无法在播放完成后回调,造成音效在按键频繁时发声重叠。改mac版本的库对目前的我来说挑战难度太大。
Cocos2d-3.x_在Lua中使用cjson库解析json prename=codeclass=cppboolAppDelegate::applicationDidFinishLaunching(){autoengine=LuaEngine::getInstance();//注册cjsonLuaStack*stack=engine-getLuaStack();luaopen_lua_extensions_cjson(stack-getLuaStat
实现了个类似blood brothers中的转轴特效 最近比较忙,有一段时间没写东西了,今天算是忙里偷闲,分享点东西。在美区有个游戏叫bloodbrothers,玩了玩,感觉还不错,其中有一个页面,可以选
标签: cocos2d解密
本文链接地址:https://www.jiuchutong.com/biancheng/368362.html 转载请保留说明!友情链接: 武汉网站建设