求助前端JS都是用什么加密的

JavaScript010

求助前端JS都是用什么加密的,第1张

js的不可读化处理分为三个方面:压缩(compression)、混淆(obfuscation) 和加密(encryption)。

1. 压缩

这一操作的目的,是让最终代码传输量 (不代表代码量, 也不代表文件体积)尽可能小。压缩js的工具,常见的有:YUI Compressor、UglifyJS、Google Closure Compiler 等。

通常在代码压缩的过程中,只改变代码的语法,代码的语义和控制流不会有太大改变。

常见做法是把局部变量缩短化,把一些运算进行等价替换等。代码压缩对于代码保护有一些帮助,但由于语义和控制流基本没变,起不了太大作用。

在压缩层面上,代码不可读只是一种附带伤害,不是最终目的。

2. 混淆

这一操作的目的,是让代码尽可能地不可读,主要用作代码保护。

让代码不可读,增加分析的难度,这是唯一目的。混淆过后文件体积变大一倍也没关系,代码量变多也没关系,运算慢50% 也没关系。

常见的做法有:分离常量、打乱控制流、增加无义代码、检查运行环境如果不对就罢工,等等。

在混淆层面上,代码不可读是最终目的。

值得一提的是,Google Closure Compiler 的 Advance Level Compression 会压缩类和对象的成员,其压缩结果很难分析,也可以认为是一种混淆,但兼容性不太好。

3. 加密

有加密就有解密,意味着加密操作可逆,密文可以明文化。

在Web界,可以称之为加密的东西包括:HTTPS传输、JavaScript实现对称加密或者不对称加密等等。

UglifyJs 是一个js 解释器、最小化器、压缩器、美化器工具集(parser, minifier, compressor or beautifier toolkit)

uglifyjs压缩有很多的参数,其中有一些可选参数,美化压缩,空格多长,变量名是否变成短名字等,具体说明: https://github.com/mishoo/UglifyJS2

名词翻译:

打开存放js文件的目录,按住shift键,鼠标右键,即可在此位置打开命令行

以下是可用的选项:

安装:cnpm install uglify-js –gcss

参数用法:

uglifyjsXX.js -o xx.min.js压缩

uglifyjsXX.js -m -o xx.min.js 混淆性压缩

uglifyjsxx.min.js –b –o xx.js 美化(反压缩) 文件

安装:

cnpm install minifier -g

用法:

minifier 是一个 nodejs 下的用于压缩 js 和 css 文件的插件。

minify index.js

则在当前文件夹下会生成一个index.min.js 的压缩的文件。css文件采用相同的命令进行压缩。