前端代码加密,存在图片里

2021-11-03 17:25:30 +08:00
 mumuy

开发前端的可能会碰到这样的问题,辛辛苦苦开发的功能,一发布就被别人把代码拷走了。网上常见的方法一般是压缩、混淆等等,加密后的代码通常包含 eval ,替换成 console.log 很容易就被破解。可以说前端没有秘密,再多的加密方式就是让对方多折腾而已……

于是,我也想尝试让别人折腾一下,不愿意轻易交出源代码。将源代码混进图片里面也是一种尝试,你可以在存入时限制脚本运行的域,如果域不符合,就自动跳转掉。这样可以保证对方在没有破解你代码的情况下,直接拷走你的脚本也是无法正常运行的。然后再对加载脚本进行人工的多层加密,让对方难以简单地通过破解加载脚本而破解源代码。

项目地址: https://github.com/mumuy/imageCode

演示地址: https://passer-by.com/imageCode/

4305 次点击
所在节点    程序员
32 条回复
xingguang
2021-11-03 17:30:54 +08:00
开放性是 JS 成功的理由,也是前端注定无法开发特别保密的东西的原因
WildCat
2021-11-03 17:33:26 +08:00
hnbcinfo
2021-11-03 17:34:35 +08:00
把核心代码写到 wasm 里,编译成二进制,看谁再去偷源码!
fkdog
2021-11-03 17:41:39 +08:00
你的路子走错了。
前端界面上所能实现的东西大多数都是属于可替代性非常强的,根本没必要把自己的代码守的死死的。
别人真的想 copy 完全可以直接重写一套。
pengtdyd
2021-11-03 17:43:28 +08:00
现在是移动端的天下了,死守页面代码是徒劳
hahastudio
2021-11-03 17:44:03 +08:00
前端代码加密我只能说是防君子不防小人
mumuy
2021-11-03 17:47:10 +08:00
@fkdog 有些人需要啊,也只能防一部分人,增加对方的工作量而已,不至于自己写的东西短期内太多山寨的
mumuy
2021-11-03 17:50:48 +08:00
@hahastudio 是的呀,就是让对方成本高,这样等他不耐烦了,自己去开发,不会直接拷你的
duduaba
2021-11-03 20:08:16 +08:00
前端代码不值钱,一般 css 就算不能复制也能手写出来,js 逻辑一压缩想反解也不是那么容易,这样一来好像就没有加密的必要了。。。
a62527776a
2021-11-03 21:00:52 +08:00
如果能把数论那套理论研究研究 还是很有价值的
ijrou
2021-11-03 22:52:17 +08:00
2 楼和 3 楼给出了解决方案;
2 楼:还可以逆向(很轻松)
3 楼:除了 wasm ,还可以在此基础上 ofs 混淆 和 vm 虚拟化 二进制代码
给出第三种解决方案是:vm 虚拟化 js 代码,可以看腾讯网页登陆拖动图片验证的代码,别人反编译的难度分析:
52pojxxx /thread-1521480-1-1.html
Kasumi20
2021-11-03 23:16:49 +08:00
图片文件夹吧?
akira
2021-11-04 02:38:23 +08:00
只关心产品 有没人用。。。现在很多时候是,东西都开源出来了 ,看都没人看
mumuy
2021-11-04 08:24:35 +08:00
@akira 就是一种尝试而已
sanggao
2021-11-04 09:49:56 +08:00
什么年代了,还觉得前端代码是宝贝呢
说白了一文不值
mumuy
2021-11-04 10:11:12 +08:00
@sanggao 每个人都有自己的价值观,就像在一些人眼里你也一文不值一样呀
mumuy
2021-11-04 10:12:45 +08:00
@ijrou 本来就没有秘密呀,只是增加别人破解的难度,让对方失去兴趣而已……我用的不是二楼的方法
YvesX
2021-11-04 10:21:53 +08:00
把辛辛苦苦的那些东西放进后端
其他页面代码不就和美术作品一样,给人看的东西,拷贝不了也挡不住临摹,何苦呢
sanggao
2021-11-04 10:25:04 +08:00
@mumuy 世间本无事,庸人自扰之。 你觉得你的代码有让别人破解的价值吗?前端不都是看看,然后自己就写写出来了?
mumuy
2021-11-04 10:46:18 +08:00
@YvesX 不是所有人都希望被看啊,代码是运行的,页面才是给看的

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

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

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

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

© 2021 V2EX