快速加密一个基本数据类型:
开发环境:VS2012, cocos2d-x
这个文章发了好几次,每次都发觉有HTML的文件元素在里面。。暂时不知道怎么搞。先这样了。改了不下5次了。
#include “base64.h"
using namespace cocos2d;
,然后在init()写入如下方法:
float coin = 12;
char* pChCoin;
base64Encode(reinterpret_cast<unsigned char*>(&coin),4,&pChCoin);//为什么是4?转到定义
UserDefault::getInstance()->setStringForKey("coin",pChCoin);
log("pChCoin===>%s",pChCoin); //AABAQQ==
这样完成了coin的加密并把它写入到本地的XML文件中,可以在DEBUGWIN32下看到。
接下来讲解密:
首先要从XML文件读取这个加密了的字符串
我们用一个string 来记住它
std::string deCodeInfo;
deCodeInfo = UserDefault::getInstance()->getStringForKey("coin");
unsigned char* chJM;
base64Decode(reinterpret_cast<const unsigned char*>(deCodeInfo.c_str()),strlen(deCodeInfo.c_str()),&chJM);
log("Decode: %f",*((float*)chJM));
如果解密的是String类型,那么解密出来的时候是没有\0,要自己补充的。
可通过直接获取base64Decode的返回值,用一个unsigned int len变量记住。
chJM[len] = '\0';
即可。