推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
unt

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

  •  
  •   unt · Oct 26, 2023 · 3752 views
    This topic created in 1115 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

    ---

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

    主要是针对各大打包器以及 Minifier ,不处理混淆,但也足够看大多数代码了,欢迎体验看看
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1139 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 18:01 · PVG 02:01 · LAX 10:01 · JFK 13:01
    ♥ Do have faith in what you're doing.