前言
Cocos Creator 打包后的素材资源,如:图片,声音等,默认是保持原始格式,只要遇到破解党,那么他们极有可能很简单就直接获取到这部分素材资源。
针对这个问题,大部分同学都会有一种资源加密的需求,即对打包后的资源进行加密,让破解党不那么容易获取到资源。
由此,引出了很多关于资源加密一些诉求,包括但不限于:
https://forum.cocos.org/t/creator/46017
https://forum.cocos.org/t/topic/90094
https://forum.cocos.org/t/cocos-creator/58620
https://forum.cocos.org/t/web/89123
但是,你可能发现,通篇下来,可能并没有一个完整的流程方案。
或是过于注重怎么加解密
或是仅支持图片资源,其他资源没涉及
或是仅涉及到部分平台,比如:只关注了原生平台
或是需要侵入到项目代码,需要使用指定的资源加载器
(鉴于目前的搜索结果)总结下来,开源出来的好像还没有一整套 Cocos Creator 资源加解密流程方案的样子。
Cocos Creator Build Encrypt
方案介绍
这次为大家带来一种 Cocos Creator **「无侵入」 「全资源支持」 「跨平台」 「资源处理流」 **方案。
以下为我关于上述四个加粗特性的定义:
**「无侵入」:**使用此方案,开发者只需要针对 Cocos Creator 构建后的输出目录 进行执行指定命令,即完成资源加密。 实际游戏项目不需要加入/删除/修改代码等其他操作,全程无侵入。
**「全资源支持」:**此方案可以对 Cocos Creator 引擎本身所支持的 所有资源文件(如:.txt,.json, .png, .mp3, .fnt等等)进行加密 ,并且依旧「无侵入」。
**「跨平台」:**此方案可以针对不同版本的 Cocos Creator 进行单独适配,并且可以对每个 Cocos Creator 支持发布的所有平台进行单独适配。
**「资源处理流」:**使用此方案,你可以对资源进行包括但不限于 加密 、 压缩 等处理流。
当然,作为一种方案,目前上述四个特性可能还过于抽象,因此,为了支撑整个方案,我准备了一个示例 [CocosCreator-Build-Encrypt] ,作为大家的参考:
**Cocos Creator Build Encrypt **
方案实现原理
1.原始资源加载 VS 加密资源加载
原始资源的加载,其实可以简化为如下步骤:
运行时:读取原始资源 -> 生成资源对象
而加密资源的加载,则是在上述基础上,加入额外的步骤,整个流程大概如下:
运行时:读取加密文件 -> 解密加密内容 -> 生成资源对象
1
2
3
原理大家可能都有所了