js 源码保护问题

2018-08-20 15:40:04 +08:00
 Hanggi

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

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

5759 次点击
所在节点    JavaScript
23 条回复
MaxTan
2018-08-20 16:32:58 +08:00
没必要保护,开源出来有人看就偷笑了
harde
2018-08-20 16:56:37 +08:00
你的代码并没有你想的那么值钱。
hundan
2018-08-20 17:04:25 +08:00
行吧,楼上两位都在说代码不值钱的事儿。

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

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

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

另一方面,如果只能前端做,有一定价值,说不定开源的效果更好,因为价值高了,迟早要被破解,可能会传的到处都是,开源还能赚个名气。
hundan
2018-08-20 17:11:38 +08:00
另外说一句,自嘲可以,嘲讽别人不行。
你的代码可以没有价值,别人的不一定,在没有看到代码就说代码不值钱,就好像看到别人先踩一脚的感觉,既解决不了问题,也丢自己的分。
yamedie
2018-08-20 17:17:23 +08:00
nw.js 有解决方案, 我前年用过, 编译成二进制.bin 文件, 客户端也用 nw 在内存中解密吧, 官方文档说是解密有 35%的性能损耗(耗时更长一些) 关键词: nwjc
DOLLOR
2018-08-20 17:19:19 +08:00
上 TypeScript,编译成 wasm。
hualongbei
2018-08-20 18:12:03 +08:00
肯定是有价值的呀 要不然活动前夕,各大购物网站连夜更新 js 是干啥的
还有锤子手机预约事件就是被翻到源码了
q397064399
2018-08-20 18:16:46 +08:00
@hundan #3 理论上来说,需要保护的代码 或者有价值且重要到需要保护代码 就不应该用 Javascript 来做,Javascript 名字就说明了一切
lscho
2018-08-20 18:28:42 +08:00
代码大部分情况下真的不值钱。。各大购物网站更新 js 是因为他们的业务和数据值钱。换句话说,同一个网站,刚开始运营的时候,就算你通过源码能得到什么?
如果你真的觉得代码值钱,比如算法什么的,那就不要用 electron。
tyrealgray
2018-08-20 18:39:31 +08:00
Nwjs 加密打包
yamedie
2018-08-20 18:59:38 +08:00
后台代码不也就增删查改吗?这么说所有代码都不值钱喽?值钱的是数据是业务是品牌,程序不值钱,程序员无用论诞生。
crab
2018-08-20 19:04:53 +08:00
弄成 JSFuck 那样的
superliwei
2018-08-20 19:21:23 +08:00
先用你能想到的方式保护代码,简单的未必不是有效的。那些代码无用论的人不用理它。
ck65
2018-08-20 19:36:45 +08:00
用 WebAssembly 做核心业务吧。
Lighfer
2018-08-21 09:08:41 +08:00
最终都是要让 node 可解释的,所以想要不被破解是不可能的,只能说增加难度,目前我们的做法是用 webpack+uglifyjs 做压缩和混淆,然后再用 pkg 包装一层。
cuzfinal
2018-08-21 10:15:26 +08:00
用 webassembly 吧
zsdroid
2018-08-21 11:28:56 +08:00
@hundan #4 脱离实际业务,任何代码都没有价值。只要知道业务逻辑,你能写的我也能写。
hundan
2018-08-21 14:08:41 +08:00
@zsdroid 你的意思是你能写的代码都是没有价值的?
cooljs
2018-08-22 20:17:02 +08:00
楼主问怎么保护,说不用保护的是另一个问题,可以另开一个帖子去讨论。就回答问题就好了呀,非要扯别的吗
loginv2
2018-08-27 11:59:36 +08:00
这个开发方式和浏览器其实是一样的,浏览器也没法保护,核心业务还是不要用 js

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/481468

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX