![]() | 1 tabris17 2014-12-05 16:47:25 +08:00 除非不在客户端执行 |
![]() | 2 kiritoalex 2014-12-05 17:04:33 +08:00 楼上+1 |
![]() | 4 easychen 2014-12-05 17:08:39 +08:00 木有。不过现在已经可以把一部分代码用node在云端执行,这样就不会被人偷代码了。 |
5 smblog 2014-12-05 17:08:56 +08:00 make the code unreadable. |
![]() | 7 lincanbin 2014-12-05 17:18:46 +08:00 ![]() 浏览器能解析,就能解密。 你能做的无非就是按照《如何写出无法维护的代码的教程去进行混淆罢了。 例如随机更换变量名。 |
![]() | 8 txlty 2014-12-05 17:37:21 +08:00 为楼上补充一个自动化工具。 http://utf-8.jp/public/jjencode.html |
![]() | 9 royzheng 2014-12-05 17:39:32 +08:00 混淆吧 混淆后那么恶心了 我想没人去搞这货吧 出了问题都没法改 |
![]() | 10 tabris17 2014-12-05 17:41:25 +08:00 问题是Javascript这种动态语言很难实现变量名替换的混淆方式 |
![]() | 11 Bluek404 2014-12-05 17:43:27 +08:00 表示用dart自动生成的混淆后js,又长又难看 |
![]() | 12 RemRain 2014-12-05 18:04:17 +08:00 ![]() 用 js 写一个操作系统(比如 http://jslinux.org/),在系统里面用 C 开发,编译后删除源文件,只留二进制文件,然后再给二进制文件加壳。 要是你愿意的话,还可以用 C 实现 js, 再用 js 实现操作系统加 C,循环 N 次,然后所有人就都给你跪下了 @_@ |
![]() | 13 zythum 2014-12-05 18:33:31 +08:00 理论上是可以的。看个例子吧。这个是letv的加密方法。从网站上拷贝下来的。 https://gist.github.com/zythum/4982268b3bb21825847f http://gist.github.com/zythum/4982268b3bb21825847f 但是问题是js的代码是明文的。可以被拷走的。这样只能做到看不懂。但是依然可以运行。开一个js虚拟机就可以了。 |
![]() | 19 cctvsmg 2014-12-05 19:13:07 +08:00 ![]() 其实可以仿照vmprotect写一个js版本的,vmprotect思想来源于门电路 原理是,把加减乘除都用nor指令实现,nor = not not and 于是原来很容易看出逻辑的 and xor not or 都加密成了整齐划一的单一操作字符nor 再从nor还原回去变的极为困难 目前为止vmp虚拟机加密只能半自动甚至手工还原,还原vmp至今是仍然有很大难度(爆破是另一回事) Javascript也可以这么做,也就是在js虚拟机上再搞vmp虚拟机 但是似乎js界和搞加密解密的交集太少,没有人去做这个事情 也可能是js并没有那么高的价值值得如此保护 |
![]() | 22 aaaa007cn 2014-12-05 21:47:03 +08:00 ![]() http://nej.netease.com/ 未混淆前就是一堆下划线下划线$$$加上单字符变量(哦他们管这个叫“约定”) http://nej.netease.com/course/standard/index 混淆后的效果可以参考 music.163.com 虽然一样可以被逆推出来 不过有多少人会去自找麻烦? |
![]() | 25 msg7086 2014-12-06 12:17:44 +08:00 via iPhone 建议参考IOCCC |
![]() | 26 hester 2014-12-06 16:24:50 +08:00 混淆后的代码可读性几乎 = 0,如果再加上一些MVC结构的话,基本上想读懂不太可能... 如果只是想寻求这个问题的答案到还好,如果你就想实现你说的方式的话,似乎有些没必要... |
![]() | 27 zythum 2014-12-07 12:52:20 +08:00 ![]() |