如何对超大JS文件混淆加密?

如何对超大JS文件混淆加密?有些时候 我们会有一些很大的 JS 文件代码需要混淆加密 例如 这个 3 4MB 的 JS 文件 通常来说是不容易一次性完成混淆加密的 因为代码量太大 在混淆加密 JS 代码时 要将代码转化成 AST 抽象语法树 再对 AST 进行处理 混淆加密完成后 再重建

大家好,欢迎来到IT知识分享网。

有些时候,我们会有一些很大的JS文件代码需要混淆加密,例如:

如何对超大JS文件混淆加密?

如何对超大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

上图代码,格式化之后:

如何对超大JS文件混淆加密?

(见图,代码量:约8万行)

然后,进行分块处理。

如何分块呢,比如,先复制一部分代码,可以是一个或多个函数,等。(注:取完整的函数或代码块,保证复制的这部分代码是整体、不会破坏函数体完整性)。

如何对超大JS文件混淆加密?

将这部分代码,复制,并到JShaman网站进行混淆加密:

如何对超大JS文件混淆加密?

混淆加密之后,将代码贴回文件原位置进行代码替换:

替换后的效果:

如何对超大JS文件混淆加密?

以此类推,完整体个JS文件代码的混淆加密。

当然,这个过程,也可以写程序自动调用进行,比如:获取每个函数的代码,调用JShaman的Web API进行混淆加密,加密后替换原代码。

如果是企业级的应用,经常有这样处理大JS文件的需要,如此处理可能还是有些繁琐。更直接的方法是使用JShaman的本地部署,是不限文件大小的。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/94078.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信