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

JavaScript012

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

1. 压缩这一操作的目的,是让最终代码传输量 (不代表代码量, 也不代表文件体积)尽可能小。压缩js的工具,常见的有:YUI Compressor、UglifyJS、Google Closure Compiler 等。通常在代码压缩的过程中,只改变代码的语法,代码的语义和控制流不会有太大改变。常见做法是把局部变量缩短化,把一些运算进行等价替换等。代码压缩对于代码保护有一些帮助,但由于语义和控制流基本没变,起不了太大作用。在压缩层面上,代码不可读只是一种附带伤害,不是最终目的。2. 混淆这一操作的目的,是让代码尽可能地不可读,主要用作代码保护。让代码不可读,增加分析的难度,这是唯一目的。混淆过后文件体积变大一倍也没关系,代码量变多也没关系,运算慢50% 也没关系。常见的做法有:分离常量、打乱控制流、增加无义代码、检查运行环境如果不对就罢工,等等。在混淆层面上,代码不可读是最终目的。值得一提的是,Google Closure Compiler 的 Advance Level Compression 会压缩类和对象的成员,其压缩结果很难分析,也可以认为是一种混淆,但兼容性不太好。广告时间:我写的 js混淆器,中文名叫 “看起来很厉害的 JS 编译器”, 英文名叫做 The Impressive JS.Segment.Compiler , 看起来很厉害的 JS 编译器 。3. 加密说实话我很难对加密做一个定义,因为加密在Web界有太多歧义了。有加密就有解密,意味着加密操作可逆,密文可以明文化。就这样看来,在Web界,可以称之为加密的东西包括:HTTPS传输、JavaScript实现对称加密或者不对称加密等等。这样看来,不可逆的代码压缩和混淆就不能列入加密这个范畴了。非要找一个可以称之为加密,又经常被人误解为压缩和混淆的东西,Dean Edwards 的 Dean Packer/Unpacker 可以拿来做个例子。

简单的说: javascript是一种客户端语言,即是在用户的浏览器中被执行的,由于权限不被服务器控制,所以不可能加密.

多说一点: 虽然js不能加密,但是如果你不太想被别人太容易拿去使用,你可以使用一些工具对javascript的代码进行压缩和代码混淆. 这种工具你搜一下就是一大堆的.