js压缩加密
❶ 求助前端JS都是用什么加密的
写过 js混淆器,谈一些浅显的个人看法。
个人认为,js的不可读化处理分为三个方面:压缩(compression)、混淆(obfuscation) 和加密(encryption)。 (不可读化处理,这是我自己发明的术语,一切会增加代码不可读性的代码转换, 都可以这么叫,“增加代码不可读性”可能是代码转换的结果或者目的).
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 可以拿来做个例子。
比如我们把 var num=1;alert(num);
输入 Dean Packer,pack 一下,得到这么一串东西,是不是看着非常像被压缩和混淆过的代码?
把上面那串意义不明物拿来 unpack 一下,得到了原文。
实际上 Dean Packer 只是对源码进行了一个字符串变换,没有深入到代码语法层面,你可以拿 "Hello world, 你好师姐" 来试试。
用Online JavaScript beautifier 能轻松把这串东西还原为 “Hello world, 你好师姐”。
可以看出,代码加密意味着:将代码明文进行可逆的变换(加密),生成密文;将密文进行逆变换(解密),可以还原明文;最终运行环境运行的是解密代码。
结语
实际上大家对压缩、混淆、加密这三个概念还是挺不清晰的,我在这里说一些个人见解,希望有帮助。
在现实项目中,我是多种手段结合的:
对于不需要做代码保护的项目,比如个人博客,做代码压缩,加快载入速度,这就够了。
对于需要做一些代码保护,防止抄袭的项目,可以在源码中加入一些开发者的信息和防护代码,然后混淆和压缩。很不幸的是,我这方面总是做得不太好,防君子防不了小人啊哈哈。
对于需要严格加密的项目,可以用 混淆、压缩、加密、签名检查 等多种手段,这我就不清楚了,等大婶来补充。
❷ 如何隐藏或加密js文件或代码,浏览器客户端不可以看到
压缩你的js 代码 ,变成min.js 这样里面的参数都被简化了,代码拿到也没用
❸ 有关js压缩,加密的事~急求!!!
压缩是为了让文件变小,文件小了对网络的要求就降低了,压缩基本上就是把注释和空格,回车换行等去掉。
加密应该说是混淆,就是把里面的函数、变量定义换成没有什么意义的简短字符,使程序的可读性极差无比
❹ 如何js 加密绑定域名
把上边这段代码加入不让其他域名加载的js文件的最开头,加密的话其实就用一个js压缩工具就可以了。上边代码我使用的是 google的 Closure Compiler。js文件加入以上代码的话,只允许 www.test.com 的域名加载。
源文件如下:
(function(){
varchars='';
varhosts=location.host;
vars='';
for(vari=0;i<hosts.length;i++){
s+=hosts[i].charCodeAt(0);
}
if(s!=chars){
thrownewURIError('随便写点啥哇。。');
}
})();
❺ 怎么加密js代码
可以在网上搜索一下js的在线加密工具。
js真正可以加密的方法很少,大多数方法只能压缩混淆代码。
❻ 如何压缩javascript和css文件
一、压缩html和javascript:
我们用站长工具的JavaScript-HTML格式化工具,我们打开页面,我今天要压缩的文件js文件:common.js ,把js代码复制到到JavaScript/HTML格式化工具里面如下图所示:
点击下面的“普通压缩”和“加密压缩”按钮,经过我的精心测试,使用“加密压缩”,对文件压缩率是最好的,所以点击“加密压缩”,压缩后如图:
javascript代码压缩后,我们就把这些代码在复制到common.js文件里面,在吧这个文件上传到空间原来的位置,进行访问是否存在一些错误,如果没有什么问题说明压缩成功;
我的common.js 文件压缩前和压缩后的对比:
压缩前:
压缩后:
文件压缩前和压缩后确实有明确的减少,说明压缩确实减少文件的大小,
我们来测试文件压缩前和压缩后所有能的时间做对比(我是用火狐插件测试传输速度):
压缩前所用时间:
压缩后所用时间:
压缩前所用时间是:125ms,压缩后所用时间:78ms ,文件压缩后给我们节省大量的时间,如果每个js都进行压缩,我们房子访问速度会更快的。
(注:html文件和javascript压缩原来一样的,当时压缩html要用到“普通压缩”按钮压缩)
二、压缩css文件:
我们打开站长工具的Css压缩/格式化工具页面,我要压缩的文件是五色旗保健品商城的css主文件style.css,首先我们打开站长工具的Css压缩/格式化工具页面 ,把style.css 代码放到Css压缩/格式化工具里面,如下图所示:
点击“压缩代码”按钮后,css代码压缩成功,如下图所示:
后边就是压缩后的css代码,你要不右边的代码复制到源文件style.css里面在上传到服务器空间里面,在访问一下网,看看网页样式有没有改变,如果有点变化就需要简单的调试一下,如果没有变样,说明你的css压缩成功了;
下面我们来看看styl.css文件压缩前和压缩后的大小和放在访问速度的大小:
文件大小对比:
压缩前:
压缩后:
压缩前30kb,压缩后23kb,明显的文件大小减小了
压缩前所用时间:
css压缩前的时间.jpg (7.36 KB, 下载次数: 0)
下载附件
css压缩前的时间.jpg
2013-11-2 00:35 上传
压缩后所用时间:
压缩前所用时间是:188ms,压缩后所用时间:93ms ,css压缩后明显的节省了95ms;
总结:一个大的网站可能会有很多的javascript和css,如果没有都进行压缩的话,一定会减少很多文件大小的,其实减少文件大少并不是很重要,最重要的是,文件容量减少了,能够快速的提高网站访问的速度,给用户带来好的体验,我们尽量的把文件压缩到最小,这样才有利于用户快速的打开网站,至此我的五色旗保健品商城优化后,我的每天的访问量也增加了很多。
❼ 关于ajax调用、JS 加密解密的问题!
直接用js压缩、混淆工具就可以了。
你这样子加密解密意义不大。最后总是要输出为js代码的,随便用个代码格式化工具刷一下,你的代码就被还原了。
❽ js如何加密源代码,页面样式全部用js写,如何操作
js是不能加密源码的,换个说法,作为一种解释性语言,如果你加密了源码,浏览器怎么解释你的js脚本。
不过可以用插件自动压缩。压缩过程中,会把一些变量用a/b/c代替,而且会移除空格和换行。这会大大增加源码阅读难度,但是也起不到加密的作用。
如果是electron开发,可以用asar对源码进行打包,不过这种就属于客户端,不是网页了。
❾ 如何将js加密
简单的说: javascript是一种客户端语言,即是在用户的浏览器中被执行的,由于权限不被服务器控制,所以不可能加密.
多说一点: 虽然js不能加密,但是如果你不太想被别人太容易拿去使用,你可以使用一些工具对javascript的代码进行压缩和代码混淆. 这种工具你搜一下就是一大堆的.