在Cocos2d-x开发中,需要对图片资源加密,可以用xxtea,加密解密都行,密钥由自己来决定。思路就是事先把图片资源加密,然后在程序中使用的时候,在加载资源处先解密再使用。
Cocos2d-x已经帮我们封装成了xxtea.h和xxtea.cpp两个文件,在cocos2d/external/xxtea 里面,如果我们在程序中直接include是会出错的,因为这时候项目中还没添加这两个文件,需要我们手动添加,如下图:
1、加密部分
我是另外写了一个项目来实现的,通过遍历某个文件夹,把里面的资源加密。
//包含头文件
#include "xxtea/xxtea.h"
bool EncryptOneResource(std::string path)
{
//这里的path是通过FileUtils::getInstance()->fullPathForFilename(const std::string &filename)方法得到的全路径。
if (path.empty())
return false;
ssize_t len = 0;
//这里我用这个过期的方法getFileData才能成功,一开始用getDataFromFile怎么试都不行,不知道为啥
unsigned char * fileData = FileUtils::getInstance()->getFileData(path, "rb", &len);
//Data data = FileUtils::getInstance()->getDataFromFil