混淆加密JS,可以压缩代码体积吗?

为了提高代码安全性,很多开发者会对JS代码进行混淆加密。

有人疑惑,混淆加密是否具有压缩效果,能否使JS代码体积减小?

本文,通过实测,对此进行答疑解惑。

首先给出答案:混淆加密对JS代码而言是具有压缩效果的。

以国内知名的JS混淆加密平台JShaman为例,其在混淆加密JS代码时,就有压缩功能。

压缩的原理,有多种,比如:去除空格、去除回车换行、去除注释、将长变量名变短等。

下面,举例展示:

示例代码:

function get_copyright(){

    var domain = "JShaman专注于JS代码混淆加密";

    var from_year = 2017;

    var copyright = "(c)" + from_year + "-" + (new Date).getFullYear() + "," + domain;

    return copyright;

}

//输出信息

console.log(get_copyright());

经JShaman混淆加密:

混淆加密JS,可以压缩代码体积吗?_回车换行

由图可见,原始JS代码长度为240字节,经JShaman混淆加密,去除了回车换行、长变量名变成了短变量名、函数调用变成了自执行函数,代码长度变成了130字节,压缩率达54%,可见混淆加密,是具有压缩代码效果的。

备注:此测试,使用JShaman专业版,未开启全部混淆加密选项,选用了对压缩友好的混淆加密功能。