1.0.1 • Published 6 months ago
assets-encrypt v1.0.1
项目资源加密、解密脚本, 小游戏资源加密部分实现
已实现功能:
- 对项目中各种资源进行加密、解密, 包括图片、文本、音视频, 有更多类型的资源需要加密可以在项目中扩展
- 此项目是衍生自小游戏加固需求, 目前针对 cocos2.4.12 引擎集成了自动化注入解密插件脚本的功能, 实现在引擎发布到微信小游戏平台后, 在小游戏运行时进行动态解密
待实现功能
- 支持指定需要加密的资源类型
- 兼容 cocos 引擎其他版本的解密方案, 以及其他引擎的解密方案(laya, egret, unity)
动态解密原理:
梳理了下 cocos2.4.12 引擎资源加载流程: 1. 资源下载(本地、缓存、网络) 2. 资源解析 3. 资源加载
只需要在资源下载完成后, 在进入资源解析的流程时, 进行资源解密即可, 这样在资源加载的时候加载的就是解密后的资源.
图片资源解密举例: 在图片资源下载到本地路径后, 可以根据路径拿到图片的加密数据, 然后在图片解析的流程中,将图片数据解密为 base64 编码, 最后将解密后的 base64 编码赋值给图片内存对象的 src 属性去加载即可. 具体代码实现可以参考decryptPlugin.js
文件内容.
使用方式
- 本地项目测试可以直接运行 package.json 文件中的 script 脚本, 具体测试代码在
test.ts
文件中修改
# 资源加密
$ yarn test-enc
# 资源解密
$ yarn test-dec
接入到现有项目测试可使用 yalc 工具模拟 npm 包导入到项目中进行测试, 导入后只需按
test.ts
文件中的写法来使用即可接入到现有项目且投入线上使用需将此项目打包发布到 npm 后导入使用