这篇文章是对Cocos2d-x游戏资源加密解决方案的补充吧。说AES 数据的加密,解密过程。可以应用到cocos2d-x的数据加解密上面,比如玩家分数加密,写入到UserDefault写xml文件上面。

AES简单介绍

作为加密很有aes、des 、3des,三者对称加密中,AES256目前是3者中最安全的。比如:你现在的数据是”abcd”,这个时候你不想人家知道,最简单的办法就是^”密码”,界面再^”密码”。当然这个是很容易给解出来的。如果你想好一点加密数据就用AES,现在的网络有很多源代码,笔者找过的库有aes-des-3des,aes-src-18-02-14,Botan-1.10.8,OpenAES-0.9.0,openssl-1.0.1i,xyssl_0.9,cryptopp562,通过对比,最终选择了xyssl_0.9里面的AES库的解密速度快,在安卓下可以使用,最重要的是在cocos2d-x下的项目上做个实验,效率可以。AES有下面三个特点。

  1. 是对称加密算法,即密钥是相同。
  2. 密钥长度有128,192或256比特。密钥长的好。
  3. 消耗资源,毕竟要解密,是需要时间的。

AES加解密

加解步骤

  1. 初始化IV 和key,不同平台可能默认不同初始化,一定要自己memset。
  2. 设置aes_setkey_enc。
  3. cbc模式,当然你也可以用其他模式。

aes加解密代码示例

文件加解密

作为文件,他只是数据存储,你只关心他数据本身的加解密。无论是在游戏,或者其他应用。我关于cocos2d-x png图片的资源加密保护,用这方法。在游戏引擎里面你也只把文件读取出数据进行解密。

  1. 打开文件。
  2. 读取文件内容。
  3. 进行加密,或解密。
  4. 写入加密内容。

源码下载

http://pan.baidu.com/s/1qWqTtEk