本站文章均为 李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2dx/659.html 上一篇介绍了,如何使用Cocos2dX自带的CCUserDefault 存储游戏数据,那么Himi也提到此方式保存的为xml格式并且数据明文显示=。 =,这个对于我们开发者来说太暴漏了有木有! so~本篇Himi分享如何使用经典Base64算法对CCUserDefault进行数据加密! OK,关于base64的介绍,Himi不再赘述,还不太熟悉的童鞋请点击以下连接阅读: http://baike.baidu.com/view/469071.htm (百度百科的 base64详细解释) 如果对于Cocos2dX自带的CCUserDefault类不太熟悉的请点击如下连接: 【iOS-cocos2d-X 游戏开发之五】游戏存储之Cocos2dX自带CCUserDefault类详解; 对Base64有了基础认识后我们就开始进入正题,首先,我们针对Cocos2dX使用c++版的base64加密文件: base64.h以及base64.cpp 文件下载导入项目中: DataBase64Himi.zip (647 字节, 11 次) 然后Himi封装好了两个函数:(这里我们假设存储游戏金币) 首先.h中,定义枚举变量(备注1) 然后.h定义两个函数:(备注2) 最后.cpp中函数具体实现代码:(备注3) OK,这里开始逐步解释一下: 首先说下备注2,这里定义的两个方法,第一个函数: 其中第一个函数传入一个int值,为什么要这样,原因是这样方便与结合枚举变量(备注1)来进行存储,这样使用的时候非常简化你的代码和步骤;第二个函数是值,这里我封装成string,这样为了更好的结合我们的base64加密!这点在(备注3)中体现! 第二个函数: 这个函数没什么好说的,传入的参数int,枚举变量即可!至于返回值是int 是方便程序中使用! OK,那么备注3对于两个封装函数中的实现需要说明的有3点: 1. 将传入的int值(key)转化成char*类型,因为cocos2dx中并没有itoa这样的方法(原因上一篇有介绍),所以这里我采用 char buffer[32]; sprintf(buffer, “%s%d”, “Himi”,iKey); 方式进行将int转化char*类型; 2. 存储的时候我们步骤是:string值进行base64加密,然后存储到xml中; 3. 将int转化string的时候我在枚举变量前加入”Himi”,大家不喜欢可以换成自己喜欢的,但是千万不要删除!因为一旦你删除掉,然后将存储后的形式为: <1>数据</1> 这样会造成你读取数据出错! 读取数据步骤:根据key读取xml的加密过的string,然后base64解密出原始值,最终atoi转化成int扔出! 这其中应该说没什么难于理解的,所以这里不再赘述了; 那么下面我们来看这两个函数如何使用: 代码是不是用起来很方面呢!哈哈,这就对啦,不能因为加密弄得乱78糟~OK,运行项目,控制台你将看到如下显示: 存储的文件内容截图如下: OK,最后呢,我要说一点,虽然我们使用base64可以对数据进行加密,但是对于不懂程序的用户来说基本无法修改,但是对于稍微有了解base64加密的童鞋,那么直接可以在线解码你的这个加密,所以呢!最后Himi提醒大家,使用base64当中,大家可以书写一些算法结合base64来使用!这样即使明文也不怕,至于怎么做,Himi就不再多说了 哈哈! 本篇×××: base64SaveDataForCocos2dx.zip (691 字节, 6 次)
//存储数据
void
saveDataByKeyValue(
int
iKey, string sValue);
//读取数据
int
loadDataByKey(
int
iKey);
【iOS-cocos2d-X 游戏开发之六】使用Base64算法对Cocos2dX自带CCUserDefault游戏存储数据加密!
原创李华明Himi 博主文章分类:【Cocos2d-x】 ©著作权
©著作权归作者所有:来自51CTO博客作者李华明Himi的原创作品,请联系作者获取转载授权,否则将追究法律责任
1
2
1
2
上一篇:【iOS-cocos2d-X 游戏开发之五】游戏存储之Cocos2dX自带CCUserDefault类详解;
下一篇:【iOS-cocos2d-X 游戏开发之七】整合Cocos2dX的Android项目到Xcode项目中,Android导入打包运行即可!
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
cocos2d-x 中CCSpriteFrameCache用法与Cocos Creator中有关方案
本文给出cocos2d-x中CCSpriteFrameCache类的使用思路,并对比了Cocos Creator 3.8环境下的实现方案,但有关更高级的缓存方案并没有讨论,请注意。
缓存 cocos creator cocos2d-x CCSpriteFrameCache SpriteFrame -
cocos2d-x中的动作替换成Cocos creator 3.8中的Tween动画
文章简单介绍从Cocos2d-x向Cocos Creator转移过程中,原先的Action动作在Creator中如何实现。
Cocos Creator Cocos2d-x 动作 Tween