js混淆

作者: 进击的小君君 | 来源:发表于2020-12-28 08:44 被阅读0次

    js混淆工具--开源项目

    • UglifyJS: https://github.com/mishoo/UglifyJS2 
    
    • terser: https://github.com/terser/terser 
    
    • javascript-obfuscator: https://github.com/javascript-obfuscator/javascript-obfuscator 
    
    • jsfuck: https://github.com/aemkei/jsfuck 
    
    • AAEncode: https://github.com/bprayudha/jquery.aaencode 
    
    • JJEncode: https://github.com/ay86/jEncrypt 
    
    

    Uglifyjs(开源)

    uglifyjs是一个开源的js 压缩工具,主要用于压缩,混淆功能并不强。

    Uglify混淆主要使用了以下方法(AST指抽象语法树):
    字符串解析成AST
    解析AST,计算出作用域、变量名等
    提供遍历AST的方法,找到你想要修改的节点
    提供把AST打印成源代码的功能
    提供美化代码的功能
    提供定位某个word位置的功能

    terser

    为什么选择terser?

    uglify-es is no longer maintained and uglify-js does not support ES6+.

    terser is a fork of uglify-es that mostly retains API and CLI compatibility with uglify-es and uglify-js@3.

    javascript-obfuscator

    important:
    Only obfuscate the code that belongs to you.
    It is not recommended to obfuscate vendor scripts and polyfills, since the obfuscated code is 15-80% slower (depends on options) and the files are significantly larger.

    jsfuck

    jsfuck 是一个开源的js 混淆工具,原理比较简单,其实就是通过特定的字符串加上下标定位字符,再由这些字符替换源代码,从而实现混淆。
    官网:http://www.jsfuck.com/,混淆功能看上去比较强大,但是本质上我认为是一种编码,而且它让会文件体积增大很多。对于太多的代码不能混淆,混淆后会出错。

    AAEncode

    用法:使用方式不合适,需要在javaScript中嵌入其语法
    HTML

    <textarea id='demo'>alert('Hello, World!');</textarea>
    

    javaScript

    var demo = $('#demo').aaencode();
    console.log(demo);
    

    JJEncode

    偏向于加密

    js混淆--在线混淆工具

    • https://obfuscator.io/ 
    
    • https://www.sojson.com/jscodeconfusion.html 
    
    • http://www.jshaman.com/protect.html 
    
    • http://www.freejsobfuscator.com/ 
    
    • https://www.daftlogic.com/projects-online-javascript-obfuscator.htm 
    
    • http://beautifytools.com/javascript-obfuscator.php 
    
    

    jshsman

    jshaman是一个商业级工具,看了很多社区的评论,这个目前是最好的,可以在线免费使用,也可以购买商业版。

    地址:http://jshaman.com/
    网站很干净,没什么烦人的广告,用起来挺清爽。

    js混淆--商业服务

    • https://javascriptobfuscator.com/ 
    
    • https://jscrambler.com/ 
    
    • http://stunnix.com/
    

    总结

    建议:如果要做代码压缩,建议使用Uglifyjs/terser,如果是为了安全性,做js代码混淆,建议使用jshaman。

    另外 单纯的本地文件加密:https://juejin.cn/post/6844904154436124686(优点:在编译阶段完成加密,不需要在工程外进行加密)

    参考链接:
    https://blog.csdn.net/weixin_38927522/article/details/107919946
    https://zhuanlan.zhihu.com/p/88300966

    相关文章

      网友评论

          本文标题:js混淆

          本文链接:https://www.haomeiwen.com/subject/uoabnktx.html