现在流行的 electron 方便了开发跨平台桌面软件,而且基于 html 的 ui 开发非常效率,但是源代码保护成了一个问题,软件有可能被破解串改。 有什么好方法保护 js 源代码嘛?
或者类似 ui 用基于 html 的,而客户端程序部分使用类似 golang 的编译语言来实现类似 electron 的效果?
1
MaxTan 2018-08-20 16:32:58 +08:00
没必要保护,开源出来有人看就偷笑了
|
2
harde 2018-08-20 16:56:37 +08:00
你的代码并没有你想的那么值钱。
|
3
hundan 2018-08-20 17:04:25 +08:00 via Android
行吧,楼上两位都在说代码不值钱的事儿。
Js 加密确实是个问题,即使从理论上讲,也只能做到尽可能混淆加密,但不可能破解不了。 也没有看到好用的已成型的 js 代码保护方案。 如果非要完全保护,那就只能后端做,这个大家都懂。 另一方面,如果只能前端做,有一定价值,说不定开源的效果更好,因为价值高了,迟早要被破解,可能会传的到处都是,开源还能赚个名气。 |
4
hundan 2018-08-20 17:11:38 +08:00 via Android 11
另外说一句,自嘲可以,嘲讽别人不行。
你的代码可以没有价值,别人的不一定,在没有看到代码就说代码不值钱,就好像看到别人先踩一脚的感觉,既解决不了问题,也丢自己的分。 |
5
yamedie 2018-08-20 17:17:23 +08:00
nw.js 有解决方案, 我前年用过, 编译成二进制.bin 文件, 客户端也用 nw 在内存中解密吧, 官方文档说是解密有 35%的性能损耗(耗时更长一些) 关键词: nwjc
|
6
DOLLOR 2018-08-20 17:19:19 +08:00
上 TypeScript,编译成 wasm。
|
7
hualongbei 2018-08-20 18:12:03 +08:00
肯定是有价值的呀 要不然活动前夕,各大购物网站连夜更新 js 是干啥的
还有锤子手机预约事件就是被翻到源码了 |
8
q397064399 2018-08-20 18:16:46 +08:00
@hundan #3 理论上来说,需要保护的代码 或者有价值且重要到需要保护代码 就不应该用 Javascript 来做,Javascript 名字就说明了一切
|
9
lscho 2018-08-20 18:28:42 +08:00 via Android
代码大部分情况下真的不值钱。。各大购物网站更新 js 是因为他们的业务和数据值钱。换句话说,同一个网站,刚开始运营的时候,就算你通过源码能得到什么?
如果你真的觉得代码值钱,比如算法什么的,那就不要用 electron。 |
10
tyrealgray 2018-08-20 18:39:31 +08:00 via Android
Nwjs 加密打包
|
11
yamedie 2018-08-20 18:59:38 +08:00 via Android
后台代码不也就增删查改吗?这么说所有代码都不值钱喽?值钱的是数据是业务是品牌,程序不值钱,程序员无用论诞生。
|
12
crab 2018-08-20 19:04:53 +08:00
弄成 JSFuck 那样的
|
13
superliwei 2018-08-20 19:21:23 +08:00
先用你能想到的方式保护代码,简单的未必不是有效的。那些代码无用论的人不用理它。
|
14
ck65 2018-08-20 19:36:45 +08:00 via iPhone
用 WebAssembly 做核心业务吧。
|
15
Lighfer 2018-08-21 09:08:41 +08:00
最终都是要让 node 可解释的,所以想要不被破解是不可能的,只能说增加难度,目前我们的做法是用 webpack+uglifyjs 做压缩和混淆,然后再用 pkg 包装一层。
|
16
cuzfinal 2018-08-21 10:15:26 +08:00
用 webassembly 吧
|
19
cooljs 2018-08-22 20:17:02 +08:00
楼主问怎么保护,说不用保护的是另一个问题,可以另开一个帖子去讨论。就回答问题就好了呀,非要扯别的吗
|
20
loginv2 2018-08-27 11:59:36 +08:00
这个开发方式和浏览器其实是一样的,浏览器也没法保护,核心业务还是不要用 js
|
21
Hanggi OP |
22
loginv2 2018-08-27 16:35:10 +08:00
electron 里面用 js 调用 c 语言组件可以么
|
23
lolizeppelin 2018-09-26 08:22:10 +08:00 via Android
这么折腾 别 js 了 用微软的控件吧 233
|