JavaScript 加密器

给软件写个彩蛋,但是又不想随便被别人看见,于是乎给脚本加下密就成了必须的了,不是为了 Property software,而是来个 Easter egg 来取乐 :-)

找来找去,找到一个 JavaScript Compiler 还不错,经过测试可以在 Firefox 和 Safari 上正常使用(IE 就不考虑了,手头也没机器测试),普通的 Encrypt 工具可能可以支持 Safari,但是对 Firefox 的支持可真的是非常一般。

地址在:http://www.virtualpromote.com/tools/javascript-encrypt/

比如经典的 Hello World:

alert("Hello World")

被加密后就成了:

var enkripsi="cngpv&apos0:&apos00Jgnnm&apos02Umpnf&apos00&apos0&apos1@" teks="" teksasli=""var panjangpanjang=enkripsi.lengthfor (i=0i<panjangi++){ teks+=String.fromCharCode(enkripsi.charCodeAt(i)^2) }teksasli=unescape(teks)document.write(teksasli)

看不懂了吧? -)

不过使用 JavaScript Compiler 有限制,生成的代码必须以单独的文件存放,而且文件还得写上 JavaScript 的标记段,因为其实它的原理是将加密的内容,解密后直接插入 DOM 树里形成的,如果不这样做,将会在浏览器窗口中直接看到解密后的 JavaScript 代码,从这种意义上说,它就不仅仅是 JavaScript 的 Compiler 了,HTML、CSS 一类也可以用它加密。

而且为了让加密后的代码能够更加容易地调用,我们最好还能够写成 Function 的模式。

这里是可供调用的完整的代码:

<script type="text/javascript">
function helloworld() {
alert("Hello World")
}
</script>

加密后的代码就成了:

var enkripsi="&apos1Aqapkrv&apos02v{rg&apos1F&apos00vgzv-hctcqapkrv&apos00&apos1G&apos2Cdwlavkml&apos02jgnnmumpnf&apos0:&apos0&apos02&apos5@&apos2C&apos02&apos02&apos02&apos02cngpv&apos0:&apos00Jgnnm&apos02Umpnf&apos00&apos0&apos1@&apos2C&apos5F&apos2C&apos1A-qapkrv&apos1G" teks="" teksasli=""var panjangpanjang=enkripsi.lengthfor (i=0i<panjangi++){ teks+=String.fromCharCode(enkripsi.charCodeAt(i)^2) }teksasli=unescape(teks)document.write(teksasli)

把它单独存成一个文件(比如 foo.js),然后引用它:

<script type="text/javascript" src="/js/foo.js"></script>

以后,只要在程序中调用 helloworld 函数就可以显示 Hello World 了。 :-)

版权所有丨转载请注明出处:https://kxq.io/archives/javascript加密器