V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yitd
V2EX  ›  程序员

分享一下有没有什么 js 加密方案?

  •  
  •   yitd · 2019-10-27 08:30:29 +08:00 · 7376 次点击
    这是一个创建于 1888 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在线加密的也可以 有源码 php asp 可以直接加密每次输出不一样的就更好了

    国内的几大 js 加密网站就不用了

    各位大佬有什么私藏的分享一下?

    32 条回复    2019-10-28 15:07:33 +08:00
    yitd
        1
    yitd  
    OP
       2019-10-27 08:34:01 +08:00
    hackyuan
        2
    hackyuan  
       2019-10-27 08:37:44 +08:00 via iPhone
    你可以用 flex 写。正常的只可以混淆,可能 wasm 可以做到。对这块不了解。
    yitd
        3
    yitd  
    OP
       2019-10-27 08:40:51 +08:00
    @hackyuan 自个儿会写就不会在此求助了┭┮﹏┭┮
    wunonglin
        4
    wunonglin  
       2019-10-27 08:41:09 +08:00   ❤️ 4
    没有且没有任何意义。

    如果你的代码有破解的价值,别人破解也就一会的事,如果没有价值,连看的人都没有,何必“加密”
    araaaa
        5
    araaaa  
       2019-10-27 08:41:28 +08:00 via iPhone
    aaencode jjencode
    yitd
        6
    yitd  
    OP
       2019-10-27 08:47:00 +08:00
    @wunonglin 要求不高 一般人看不懂就行了
    wunonglin
        7
    wunonglin  
       2019-10-27 08:49:45 +08:00
    @yitd #6 看不懂那就 webpack 打包一下就好了啊
    xiangyuecn
        8
    xiangyuecn  
       2019-10-27 09:18:35 +08:00
    装上 nodejs,用 uglify-js 混淆一下就 ojbk 了,不但一般人看不懂,大部分人也不会去看,因为懒得看这种混淆过的代码😂

    https://github.com/xiangyuecn/Recorder/blob/master/src/package-build.js
    ......./package.json
    orzorzorzorz
        9
    orzorzorzorz  
       2019-10-27 09:24:13 +08:00
    前端都是明文,要加密都是些治标不治本的方法,何苦费那个脑子。有这闲心不如上 https,然后在行为上约束用户、在数据上不留空隙
    hkitdog
        10
    hkitdog  
       2019-10-27 09:40:28 +08:00 via iPhone
    关键代码用 C++写
    Curtion
        11
    Curtion  
       2019-10-27 09:43:26 +08:00
    @yitd #6 如果只是要求一般人看不懂那么压缩加混淆就够了,他格式化出来也得猜变量的作用
    gamexg
        12
    gamexg  
       2019-10-27 09:58:23 +08:00
    webassembly
    fengxianqi
        13
    fengxianqi  
       2019-10-27 10:06:19 +08:00 via Android
    加密这种需求还是有的,特别是 zf 类网站,别说什么好破解的话等于不加,至少安全大佬不让你过,有些甚至要求用上国密,如 sm2
    areless
        14
    areless  
       2019-10-27 10:31:20 +08:00 via Android
    前端加密算法都能看到~~~随便谁都能解出来的。写在 js 里没有意义的。所以很多人在寻求一种在前端加密,算法跟秘钥都写在里面却不能被破解的方案。就算每次创建新秘钥设定过期,也避免不了被重用。有一个方案是这样,用 js 产生随机值去调用不同的加密算法~~~算法上千种,js 库特别大,随机载入~~~核对一个编号。js 解密库天天更新编号~~还是会被重用吧。所以前端加密利用图形加密,这种貌似可以做到端对端信任~~~截获也不能被重用。
    gogo2
        15
    gogo2  
       2019-10-27 10:35:03 +08:00 via iPad
    现在流行的加密是把代码变成一行代码,搞出无数个 a b c d e f 小函数, 最后一句调用,
    可读性很差,这些对高手都不是问题,chrome 的调试器已经很强大了,
    0o0O0o0O0o
        16
    0o0O0o0O0o  
       2019-10-27 10:51:14 +08:00 via iPhone
    mamahaha
        17
    mamahaha  
       2019-10-27 10:59:56 +08:00
    这种加密解密的解释器只能靠自己做了,如果有产品,那很快就会被破解掉,那你做的东西就白做了。
    YenvY
        18
    YenvY  
       2019-10-27 11:09:58 +08:00 via Android
    把标题改成混淆就没这么多人跟你杠有用没用的了
    zy445566
        19
    zy445566  
       2019-10-27 11:16:19 +08:00 via Android
    可以用 QuickJS 编译 js 到可执行文件
    zy445566
        20
    zy445566  
       2019-10-27 11:27:58 +08:00 via Android
    不过上面只能编译纯 js,node 和前端功能貌似不支持
    unicloud
        21
    unicloud  
       2019-10-27 11:30:57 +08:00 via iPhone
    要求不高的话,uglify js 就行了
    hakono
        22
    hakono  
       2019-10-27 11:37:59 +08:00 via iPhone   ❤️ 1
    说前端加密没意义的太过以偏概全了
    世上没有不能破是加密,加密的意义就是让破解成本超出破解得到的利益

    混淆这个治标不治本,有耐心的总归可以一点点磨掉你的代码,破解技术门槛并不高

    前端加密的真正方法还是得靠 emscripten 或 webassembly,这两者让破解前端代码的难度从谁都可以上去搞的等级变为了和破解普通编译好的 exe 程序一个等级了,这就是一个非常大的技术门槛了
    而且反向 exe 现在已经有各种成熟的工具了,但前端什么都没有。你只能用浏览器自带的那个垃圾得不行的开发工具去调试代码(为什么说那玩意垃圾,单个 js 的代码体积稍微大一点比如 4MB 以上直接彻底卡死,所有浏览器都一样。所以保护你代码最简单的方法是什么?往你的 js 里塞入巨量的无意义代码,塞到至少 7mb 然后混淆,这样你的代码就没有任何人能破解的了因为他们调试器都启动不了,不要担心性能问题现代的浏览器能 hold 住的)
    如果想搞的更彻底,那 exe 开发中能用到的一切方法比如加壳,vm 都可以通过 webassembly 在前端中实现,目前的反向难度只会比反向 exe 更大,因为 xs 现在哪垃圾调试器根本做不好



    https://www.v2ex.com/t/516970#reply25

    我之前的这个帖子可以看一下

    现在针对
    snowydec
        23
    snowydec  
       2019-10-27 11:56:22 +08:00
    。。。
    buhi
        24
    buhi  
       2019-10-27 12:04:54 +08:00
    与其前端加密, 不如你把你需要加密的逻辑放在后端的服务里面.
    如果放前端
    就说明你的逻辑没有加密的价值
    zhuangzhuang1988
        25
    zhuangzhuang1988  
       2019-10-27 12:08:02 +08:00
    用 scala.js, clojurescript 编译后的 js
    jinliming2
        26
    jinliming2  
       2019-10-27 12:53:01 +08:00 via iPhone
    破解你前端代码的意义在于什么?
    比如 16 楼贴的链接里的视频加密防盗?
    这种不管你用什么加密方案,我甚至不需要对你的代码解密,只要找到 js 调用的入口点,然后把你整个加密过的代码拿走用就行了……
    毕竟破解你的代码实际上只是想要你的功能,具体逻辑是什么其实也不是很关心的……
    你的功能被加密混淆在代码里了,那我就把整个代码复制走,当个 lib 库来用就好了啊!
    其他的 WebAssembly 之类的也是同理,你打包成 wasm 了又如何?我直接拷走你奈我何?

    除非是想要破解你的代码逻辑……
    但是对于想要改你代码逻辑的人,你觉得他的能力水平会搞不定你的前端加密?
    DT27
        27
    DT27  
       2019-10-27 14:10:45 +08:00
    https://github.com/travist/jsencrypt
    OpenSSL RSA 加密解密。
    我的方案是 js 用公钥加密,后台动态语言用私钥解密。
    crab
        28
    crab  
       2019-10-27 14:22:17 +08:00
    JSFuck
    xiaomingVTEX
        29
    xiaomingVTEX  
       2019-10-27 14:31:49 +08:00
    知乎看见过, 有个专门提供 js 加密的,
    [securitify.io](securitify.io)
    wanguorui123
        31
    wanguorui123  
       2019-10-28 10:20:38 +08:00
    CryptoJS
    Nazz
        32
    Nazz  
       2019-10-28 15:07:33 +08:00
    前端逻辑全用 WASM 满足你的需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5030 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 09:39 · PVG 17:39 · LAX 01:39 · JFK 04:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.