V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
unt
V2EX  ›  JavaScript

请教下打包后的 js 代码混淆

  •  
  •   unt · 183 天前 · 1661 次点击
    这是一个创建于 183 天前的主题,其中的信息可能已经有所发展或是发生改变。

    通常各位大佬们采用哪种方法,平时会做混淆吗。

    混淆后会不会代码兼容性变差,会变得在某些场合下运行报错。

    比较方便的混淆方式是怎么样的。

    12 条回复    2023-10-27 23:30:03 +08:00
    musi
        1
    musi  
       183 天前 via iPhone
    一般不混淆,前端混淆用处不大
    Pionxzh
        2
    Pionxzh  
       183 天前
    前端没有秘密,做半吊子的混淆跟没做一样,除非你愿意花大力气做
    streamrx
        3
    streamrx  
       183 天前 via iPhone
    客户端做混淆 只要逆向的收益大于付出是成本,就 100%会被破解
    unt
        4
    unt  
    OP
       183 天前 via iPhone
    @musi
    @Pionxzh
    @streamrx 完全加密不可能。而且可能影响性能,所以目的从来都不是什么绝对安全。而是让打开代码的人没有看的欲望
    seki
        6
    seki  
       183 天前
    除非混淆器有 bug ,一般来讲不会报错

    如果就是不想让人看,那其实不混淆问题也不大的,本来也没什么人会专门看代码……
    tool2d
        7
    tool2d  
       183 天前
    用 google 的 Google Closure Compiler ,我自己觉得挺好用。

    https://tool2d.com/#js
    mightybruce
        8
    mightybruce  
       183 天前
    前端如果要混淆到足够难度一般就不会用 js 了,用 wasm 会比较方便。
    wu67
        9
    wu67  
       183 天前
    不混, 就稍微压一下空格换行之类的, 减少打包体积, 甚至压缩都不做
    kaf
        10
    kaf  
       183 天前
    去年还有各种问前端混淆怎么还原的,只能说还是可以难倒不少人,只是不用在混淆上过分给自己找事做,压缩下空格换行,乱码一下变量方法名就行了
    rekulas
        11
    rekulas  
       182 天前
    见过最强的 js 混淆还不是大厂,大厂任务重现在没多少团队喜欢这个,前几年看到境外赌博网站用 js 实现了简单的虚拟机然后核心逻辑跑字节 code...
    Pionxzh
        12
    Pionxzh  
       182 天前
    正常的混淆器是不会造成运行报错的,但要用就是要承担性能及体积的惩罚,这种事主要还是看你想防御的对象。问题有点太 general 了,只能给你这样的答案。

    ---

    最近正好在实现 JS 的 Decompiler.
    https://github.com/pionxzh/wakaru

    主要是针对各大打包器以及 Minifier ,不处理混淆,但也足够看大多数代码了,欢迎体验看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2986 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:13 · PVG 17:13 · LAX 02:13 · JFK 05:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.