javascript - 如何加密js代码,实现加密的同时能正常运行?

 

问题描述:

如何加密js代码,实现加密的同时能正常运行?


 

第 1 个答案:

浏览器上能正常运行的代码并不存在真正的加密,只是把语法和变量尽量混淆,让你看不出来函数是干什么的。现在的构建工具都支持或者已经集成了一些业界比较出名库或者插件,比如UglifyJS

比如下面这段代码
function t(t){for(var n,r,o=t[0],i=t[1],u=0,s=[];u<o.length;u++)r=o[u],Object.prototype.hasOwnProperty.call(a,r)&&a[r]&&s.push(a[r][0]),a[r]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);l&&l(t);while(s.length)s.shift()()}

光从代码上,你几乎没法了解是干什么的,变量代表什么意义也不清楚。但是呢,无论如何这段代码都需要遵循JS规范和标准,也就意味着,其实这些代码你要死磕的话,通过整个js文件的上下文,是可以大致搞明白的。关于反编译我不太了解是否能做到恢复源码,类似于SourceMap那样。


 

第 2 个答案:

你指的应该是 js 混淆吧,有个知名混淆库可以参考下javascript-obfuscator
相关文章也能看看Javascript混淆与解混淆的那些事儿


我自己写了个在线html,css,js工具:html结构部分< ...