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

js 源码保护问题

  •  2
     
  •   Hanggi · 2018-08-20 15:40:04 +08:00 · 5905 次点击
    这是一个创建于 2322 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在流行的 electron 方便了开发跨平台桌面软件,而且基于 html 的 ui 开发非常效率,但是源代码保护成了一个问题,软件有可能被破解串改。 有什么好方法保护 js 源代码嘛?

    或者类似 ui 用基于 html 的,而客户端程序部分使用类似 golang 的编译语言来实现类似 electron 的效果?

    23 条回复    2018-09-26 08:22:10 +08:00
    MaxTan
        1
    MaxTan  
       2018-08-20 16:32:58 +08:00
    没必要保护,开源出来有人看就偷笑了
    harde
        2
    harde  
       2018-08-20 16:56:37 +08:00
    你的代码并没有你想的那么值钱。
    hundan
        3
    hundan  
       2018-08-20 17:04:25 +08:00 via Android
    行吧,楼上两位都在说代码不值钱的事儿。

    Js 加密确实是个问题,即使从理论上讲,也只能做到尽可能混淆加密,但不可能破解不了。

    也没有看到好用的已成型的 js 代码保护方案。

    如果非要完全保护,那就只能后端做,这个大家都懂。

    另一方面,如果只能前端做,有一定价值,说不定开源的效果更好,因为价值高了,迟早要被破解,可能会传的到处都是,开源还能赚个名气。
    hundan
        4
    hundan  
       2018-08-20 17:11:38 +08:00 via Android   ❤️ 11
    另外说一句,自嘲可以,嘲讽别人不行。
    你的代码可以没有价值,别人的不一定,在没有看到代码就说代码不值钱,就好像看到别人先踩一脚的感觉,既解决不了问题,也丢自己的分。
    yamedie
        5
    yamedie  
       2018-08-20 17:17:23 +08:00
    nw.js 有解决方案, 我前年用过, 编译成二进制.bin 文件, 客户端也用 nw 在内存中解密吧, 官方文档说是解密有 35%的性能损耗(耗时更长一些) 关键词: nwjc
    DOLLOR
        6
    DOLLOR  
       2018-08-20 17:19:19 +08:00
    上 TypeScript,编译成 wasm。
    hualongbei
        7
    hualongbei  
       2018-08-20 18:12:03 +08:00
    肯定是有价值的呀 要不然活动前夕,各大购物网站连夜更新 js 是干啥的
    还有锤子手机预约事件就是被翻到源码了
    q397064399
        8
    q397064399  
       2018-08-20 18:16:46 +08:00
    @hundan #3 理论上来说,需要保护的代码 或者有价值且重要到需要保护代码 就不应该用 Javascript 来做,Javascript 名字就说明了一切
    lscho
        9
    lscho  
       2018-08-20 18:28:42 +08:00 via Android
    代码大部分情况下真的不值钱。。各大购物网站更新 js 是因为他们的业务和数据值钱。换句话说,同一个网站,刚开始运营的时候,就算你通过源码能得到什么?
    如果你真的觉得代码值钱,比如算法什么的,那就不要用 electron。
    tyrealgray
        10
    tyrealgray  
       2018-08-20 18:39:31 +08:00 via Android
    Nwjs 加密打包
    yamedie
        11
    yamedie  
       2018-08-20 18:59:38 +08:00 via Android
    后台代码不也就增删查改吗?这么说所有代码都不值钱喽?值钱的是数据是业务是品牌,程序不值钱,程序员无用论诞生。
    crab
        12
    crab  
       2018-08-20 19:04:53 +08:00
    弄成 JSFuck 那样的
    superliwei
        13
    superliwei  
       2018-08-20 19:21:23 +08:00
    先用你能想到的方式保护代码,简单的未必不是有效的。那些代码无用论的人不用理它。
    ck65
        14
    ck65  
       2018-08-20 19:36:45 +08:00 via iPhone
    用 WebAssembly 做核心业务吧。
    Lighfer
        15
    Lighfer  
       2018-08-21 09:08:41 +08:00
    最终都是要让 node 可解释的,所以想要不被破解是不可能的,只能说增加难度,目前我们的做法是用 webpack+uglifyjs 做压缩和混淆,然后再用 pkg 包装一层。
    cuzfinal
        16
    cuzfinal  
       2018-08-21 10:15:26 +08:00
    用 webassembly 吧
    zsdroid
        17
    zsdroid  
       2018-08-21 11:28:56 +08:00
    @hundan #4 脱离实际业务,任何代码都没有价值。只要知道业务逻辑,你能写的我也能写。
    hundan
        18
    hundan  
       2018-08-21 14:08:41 +08:00 via Android
    @zsdroid 你的意思是你能写的代码都是没有价值的?
    cooljs
        19
    cooljs  
       2018-08-22 20:17:02 +08:00
    楼主问怎么保护,说不用保护的是另一个问题,可以另开一个帖子去讨论。就回答问题就好了呀,非要扯别的吗
    loginv2
        20
    loginv2  
       2018-08-27 11:59:36 +08:00
    这个开发方式和浏览器其实是一样的,浏览器也没法保护,核心业务还是不要用 js
    Hanggi
        21
    Hanggi  
    OP
       2018-08-27 14:17:41 +08:00
    @loginv2 嗯是的,但是 js 带来的开发效率感觉很难有其他框架可以比拟啊。用什么替代 electron 呢?(除了.net
    loginv2
        22
    loginv2  
       2018-08-27 16:35:10 +08:00
    electron 里面用 js 调用 c 语言组件可以么
    lolizeppelin
        23
    lolizeppelin  
       2018-09-26 08:22:10 +08:00 via Android
    这么折腾 别 js 了 用微软的控件吧 233
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1463 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:15 · PVG 01:15 · LAX 09:15 · JFK 12:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.