【说明】
这篇文章是对上一篇 【Cocos2d-x PNG图片资源加密】的补充和扩展,那篇文章转自【旧时尘安】的博客,文中已经对原理和使用讲解的很清晰,这里只是根据我自己的使用情况做一些小小的功能扩展,也是自己做个整理,以便日后使用。如有侵权,请联系删除。
【链接】
原文地址:http://www.cnblogs.com/zhangpanyi/p/4560297.html
原始工程:https://github.com/zhangpanyi/EncryptPNG
【使用】
修改后的使用有所调整,原文的使用更简洁,这里主要是依照我个人的习惯作出的调整。我在代码中添加了设置密钥和扩展名的接口。
1. 在 cocos 目录下新建文件夹 ext ,将 CCAES.cpp、CCAES.h、CCDecryptImage.cpp、CCDecryptImage.h 拷贝到其中。
2. 在Xcode项目中引用 ext 目录。
注:这里可能会报错,为此我耽误了半天,结果居然是Xcode没有自动引用导致的,我已记录到 【这里】。
3. Android项目需要修改 cocos/Android.mk 文件,将两个cpp文件添加进去即可。
4. 在 CCImage 中调用解密代码,方法与原文一样,这里略有修改,代码见附录。
注:我将对 CCDecryptImage.h 的引用放在了 CCImage.h ,是为了在项目中设置密钥时不需要再引用此头文件。
5. 在项目中设置密钥和扩展名,我是在 AppDelegate.cpp 中设置。
注:如果修改扩展名,需要加密端也做修改,保证两边扩展名一致。
// 设置密钥
const ext::aes_key key = {0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};
ext::DecryptImageConfig(key, ".epng");