cocos2d-x lua 加密解密

我总是想写点东西来得到大家的认可,因为我都想把我自己在开发过程中遇到的一些麻烦,花了一些时间然后解决的东西分享给大家,让需要的同学可以少走弯路!也是刚开始我的博客人生,总是想这样做应该有意义的,可以帮到大家!

废话不多说吧,相信有很多人用到了cocos的lua引擎,这个东西不错,有很多用处,甚至你可以用它来存储数据,作为配置文件!至于lua的用处,我就不多说了!现在我想讨论的是,如果你用了lua,你总是希望它是被加密的,也许里面的数据总是不想让别人看到的!我的项目也是,所以我就需要对lua文件进行加解密!lua加密的话跟普通文件加密一样的,你可以使用AES加密,这是一个比较普遍的加密解密算法,是一个开源的,比较不错,大家有兴趣可以网上搜索看一看!在cocos2d-x里面,有对lua的使用做了test,大家不会的也可以去看!

首先,我们要用lua引擎的读取内存的方法,这样,我们才可以把你的lua文件解密出来,传给lua方法!来看看这个代码

cocos2d::CCString* pstrFileContent = cocos2d::CCString::createWithContentsOfFile("E:\1-1.lua");
	pEngine->executeString(pstrFileContent->getCString());
上面的代码就是先把lua文件读到内存,然后传给lua引擎去处理!这样,我们就可以在将lua文件读到内存之后,对内存中的lua文件先进行解密后再传给lua引擎处理(假设你的lua已经加密了)!现在来看看我是怎么做的

cocos2d::CCString* pstrFileContent = luaDecode(fullPath .c_str(),LUADECODEKEY);	//lua 解密
	pEngine->executeString(pstrFileContent->getCString());
我自己写了一个解密函数,返回一个CCString!

再来看看我那个解密函数

cocos2d::CCString* luaDecode(const char *pszFileName,int key)
{
	unsigned long size = 0;
	unsigned char* pData = 0;
	CCString* pRet = NULL;
	pData = CCFileUtils::sharedFileUtils()->getFileData(pszFileName, "rb", &size);
	for(int i=0;i<size;i++ )
	{
		pData[i] = (char)(pData[i]^key);
	}
	pRet = CCString::createWithData(pData, size);
	CC_SAFE_DELETE_ARRAY(pData);
	return pRet;
}
当然,这是一个非常简单的加密解密方法(异或)!就这样,你的lua问价就解密了!
	对于lua的加密,自己可以做一个小工具,这个小工具的思路跟大家分享一下,先把要加密的文件读取了,然后加密再存到另一个文件夹就OK了!这个应该大家都都懂,但是有些人可能还是有点不知所措,在这里点一下应该不清楚的也清楚了!!!
	今天的分享就先到这里了,只是个人见解,对你有用当然好,如果对你没用,也许对你还是有点启发吧,呵呵

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值