大家好,欢迎来到IT知识分享网。
有些时候,我们会有一些很大的JS文件代码需要混淆加密,例如:
这个3.4MB的JS文件,通常来说是不容易一次性完成混淆加密的。因为代码量太大。
在混淆加密JS代码时,要将代码转化成AST(抽象语法树),再对AST进行处理,混淆加密完成后,再重建为JS代码。而像3.4MB大小的文件,代码量可能达到几万行,甚至几十万行,可以想像:进行各种转码、逐行处理,是种什么样的工作量,即使是程序自动处理,也会非常耗时。因此,对这样量极的JS代码进行混淆加密,在线的JS加密工具,是不允许的,不接受这样大的文件,或需要高权限。
如果我们要处理这样大的文件,需要些技巧。
方法一、
这样大的文件,通常不是手写完成的,而是使用各种工具打包、编译生成的。比如可能是webpack将很多文件打包在了一起,或者可能是h5游戏引擎(cocos、白鹭,等等)编译而成。
如果打包或编译前的源码也是JS,那么,可以对未打包前的原始JS代码文件混淆加密,会比较轻松,先混淆加密,然后再打包编译。
方法二、
如果原始代码是非JS语言,比如,可能是TS,那就无法对原始代码混淆了。只能处理这个大的JS文件。
处理方式,也不太复杂。以上面给出的文件为例。
首先,将JS代码格式化(上图中可见,文件是压缩成一行的,如果是未压缩的代码,则不必格式化)。
JS代码格式化可使用:
fairysoftware.com/js_ge_shi_hua.html
上图代码,格式化之后:
(见图,代码量:约8万行)
然后,进行分块处理。
如何分块呢,比如,先复制一部分代码,可以是一个或多个函数,等。(注:取完整的函数或代码块,保证复制的这部分代码是整体、不会破坏函数体完整性)。
将这部分代码,复制,并到JShaman网站进行混淆加密:
混淆加密之后,将代码贴回文件原位置进行代码替换:
替换后的效果:
以此类推,完整体个JS文件代码的混淆加密。
当然,这个过程,也可以写程序自动调用进行,比如:获取每个函数的代码,调用JShaman的Web API进行混淆加密,加密后替换原代码。
如果是企业级的应用,经常有这样处理大JS文件的需要,如此处理可能还是有些繁琐。更直接的方法是使用JShaman的本地部署,是不限文件大小的。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/94078.html