美文网首页Cocos CreatorAndroid DeveloperAndroid技术知识
Cocos中 jsc 文件解密和重新加密的脚本

Cocos中 jsc 文件解密和重新加密的脚本

作者: QinGeneral | 来源:发表于2018-09-10 22:52 被阅读7次
图片源于zoommy

好久没更,正好最近毕业生找工作的季节,几篇面经的文章多了一些赞,也顺带涨了几个粉。

从文章统计数据来看,浏览量比较多的还是面经,而非平常的技术文章。以前在文章里也说过,一个人能挣的钱取决于他的社会价值,一个人能否找到好工作在于其本身实际素养。虽然面试时能够包装一下,但是过度包装也很容易被戳破。面经固然可以起到一些作用,但是读一些技术文章和实践编码才是成长的关键。希望找工作的同学读面经时,遇到不会的一定要逐个突破掌握,才能让面经起到应有的作用。否则纵然你读100篇面经,也涨不了知识。

另外,做一个项目不仅仅包含写代码这一部分。比如Android项目还要包含自动化构建等等内容,一些操作靠人来完成耗时耗力,如果能够实现一些能够解放人力、提高效率的脚本是十分有用的。

最近写了一个Cocos中 jsc 文件解密和重新加密的脚本,可以提升Cocos中比如热更新时的打包效率。项目地址:点击跳转GitHub

简介

通过阅读Cocos2dx源码发现,其脚本加解密用的就是xxtea加密和解密。

CocosCreator构建过程为:

  1. 工程用到的所有js脚本聚合为project.js等几个脚本
  2. 如果勾选“Zip 压缩”选项,会进行压缩project.js,会减少很多体积,进而可以减少包大小
  3. 使用xxtea进行加密上述文件,生成project.jsc
  4. 将project.jsc打包到apk、ipa等安装包中

在程序运行时,正好做了相反操作:

  1. 使用xxtea进行解密
  2. 如果勾选“Zip 压缩”选项,进行解压缩
  3. 调用js代码

此脚本就是用于CocosCreator加密编译后 jsc 文件解密为 js 文件和 js 文件加密为 jsc 文件。

CocosCreator构建时,是否勾选Zip压缩选项决定了使用脚本的参数不同。在CocosCreator的构建面板下图的位置中,查看加密密钥和是否开启Zip压缩。


image

此脚本在 macOS High Sierra 10.13.6 系统,Python 2.7 下运行正常,其他环境未测试

使用说明

命令行使用:

  1. 如果使用加密功能,第二个参数设置为 encrypt;如果使用解密功能,第二个参数设置为 decrypt。此参数为必选参数

  2. 如需设置加密密钥,添加 --key 或 -k 参数,并跟上加密密钥字符串。如不设置,会在命令行中提示输入

  3. 如需设置为非压缩方案,添加 --nozip 或 -n 参数,并设置为 true。如不设置,默认为压缩方案

    非压缩方案是指Cocos编译时没有勾选“Zip 压缩”选项

  4. 找到CocosCreator编译出来的 .jsc 文件,一般在工程目录下 build/jsb-default/src 文件夹下。你可以在脚本运行时,根据提示输入文件的路径来指定对应文件。也可以添加 --path 或 -p 参数,设置为文件路径。如不设置,会在命令行中提示输入

  1. 运行脚本即可

    • encrypt:解密后文件路径为 decryptOutput/decrypt.js
    • decrypt: 加密后文件路径为 encryptOutput/projectChanged.jsc
  2. 举例:

    • ./edc.py encrypt --key yourkey --nozip true
    • ./edc.py decrypt --nozip true
    • ./edc.py decrypt

其他Python脚本中引用:

  1. 下载edc.py文件放到你的脚本目录下,通过 import edc 进行导入
  2. 直接调用 edc.decrypt(is_zip, key, jsc_path) 或 edc.encrypt(is_zip, key, js_path) 即可,可参考 edcExample.py 文件

如果是非交互式脚本,请务必在调用方法时传入有效的参数,并保证其正确性

参数说明

参数名 缩写 是否必须 默认值
encrypt/decrypt -
--key -k -
--nozip -n false
--path -p -

参考文章

版权声明
本文首发自简书:搜索作者 QinGeneral
同步发于CSDN博客:搜索作者 迷失
同步发于微信公众号:AndroidRain
无需授权即可转载,甚至无需保留以上版权声明;
转载时请务必注明作者。

扫码关注微信公众号

相关文章

  • Cocos中 jsc 文件解密和重新加密的脚本

    好久没更,正好最近毕业生找工作的季节,几篇面经的文章多了一些赞,也顺带涨了几个粉。 从文章统计数据来看,浏览量比较...

  • 资源加密和脚本加密

    主要是资源加密和脚本加密。cocos2dx版本3.10。 脚本加密 脚本加密主要是用cocos2dx自带的加密方法...

  • cocos资料

    Cocos 资料大全 Cocos2d-x Lua运行流程 加密 cocos2dx资源和脚本加密quick-lua3...

  • Lua xxtea 解密脚本

    众所周知,使用 cocos 引擎编写的游戏,如果直接使用 xxtea 加密 Lua 脚本,实际上是很容易被解密的,...

  • php加密代码解密

    php 加密文件解密 加密后的源文件长这个样: 开始解密: 新建一个php文件 如 a.php 在解密文件中引入加...

  • cocos luacompile命令加密lua文件

    用法介绍 命令cocos luacompile --h查看用法 用法 luacompile.sh加密脚本文件 执行...

  • 2.8 加密工具与散列

    《Linux Shell 脚本攻略(第 2 版)》读书笔记 crypt 加密文件 解密文件 gpg(GNU 隐私保...

  • Lua 脚本解密

    教程: 一个Lua脚本的解密过程 lua脚本的加密和解密(GG游戏脚本) 下载地址: unluac_2015_06...

  • C语言6-文件相关操作

    文件的读 文件的写 文件的复制 文件大小的获取 文件加密 文件的解密 文件的加密,使用密钥 文件的解密,使用密钥

  • openssl终端命令RSA和DES加解密

    RSA 1、生成公钥和私钥 2、加密解密文件 公钥加密私钥解密 私钥加密公钥解密 3、在程序中使用依次生成 csr...

网友评论

  • 如果听到这旋律:第一印象:我看不懂很正常
    第二印象:条理清晰,别人看一定很舒服

本文标题:Cocos中 jsc 文件解密和重新加密的脚本

本文链接:https://www.haomeiwen.com/subject/zwvegftx.html