【IOS-COCOS2D-X 游戏开发之六】使用BASE64算法对COCOS2DX自带CCUSERDEFAULT游戏存储数据编码加密!

简介:
本站文章均为  李华明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  文件下载导入项目中:[download id=”63″]

然后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”               下载地址: http://vdisk.weibo.com/s/hq0Pq


相关文章
|
8月前
|
存储 搜索推荐 算法
加密算法、排序算法、字符串处理及搜索算法详解
本文涵盖四大类核心技术知识。加密算法部分介绍了对称加密(如 AES)、非对称加密(如 RSA)、哈希摘要(如 SHA-2)、签名算法的特点及密码存储方案(加盐、BCrypt 等)。 排序算法部分分类讲解了比较排序(冒泡、选择、插入、归并、快排、堆排序)和非比较排序(计数、桶、基数排序)的时间复杂度、适用场景及实现思路,强调混合排序的工业应用。 字符串处理部分包括字符串反转的双指针法,及项目中用正则进行表单校验、网页爬取、日志处理的实例。 搜索算法部分详解了二分查找的实现(双指针与中间索引计算)和回溯算法的概念(递归 + 剪枝),以 N 皇后问题为例说明回溯应用。内容全面覆盖算法原理与实践
253 0
|
9月前
|
算法 数据安全/隐私保护
基于混沌加密的遥感图像加密算法matlab仿真
本项目实现了一种基于混沌加密的遥感图像加密算法MATLAB仿真(测试版本:MATLAB2022A)。通过Logistic映射与Baker映射生成混沌序列,对遥感图像进行加密和解密处理。程序分析了加解密后图像的直方图、像素相关性、信息熵及解密图像质量等指标。结果显示,加密图像具有良好的随机性和安全性,能有效保护遥感图像中的敏感信息。该算法适用于军事、环境监测等领域,具备加密速度快、密钥空间大、安全性高的特点。
|
弹性计算 算法 Linux
使用SM4算法加密LUKS格式磁盘
本文介绍了在Anolis 8操作系统使用cryptsetup对磁盘进行分区、加密和挂载的过程。采用SM4加密算法。具体步骤包括:初始化加密卷、解锁加密分区、格式化并挂载设备。最后,展示了如何取消挂载并关闭加密卷以确保数据安全。整个过程确保了磁盘数据的安全性和隐私保护。
1066 2
使用SM4算法加密LUKS格式磁盘
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点讲解了如何使用 Kotlin 实现 AES-256 的加密和解密,并提供了详细的代码示例。通过生成密钥、加密和解密数据等步骤,展示了如何在 Kotlin 项目中实现数据的安全加密。
1112 1
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点展示了如何使用 Kotlin 实现 AES-256 的加密和解密,提供了详细的代码示例。
607 2
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
1325 1
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
365 1
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
|
算法 安全 网络安全
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法