做之前没说要源码,做完后要求要源码,除了”不给“这个方案,有什么办法能加密源码?或者不能直接使用或二次开发,老司机!
![]() | 1 Pandara 2016-06-24 17:07:06 +08:00 代码混淆咯 |
![]() | 2 ipconfiger 2016-06-24 17:08:58 +08:00 你应该自信的给老板说, 以我代码的混乱程度, 丢给他们谅他们也看不明白....... 自带代码混淆特技功能随时开启 |
3 annielong 2016-06-24 17:12:37 +08:00 既然是要源码,不给和加密源码的方案一个样,真想增加难度就用代码压缩, |
![]() | 4 jugelizi 2016-06-24 17:17:09 +08:00 我猜是 php 项目 |
![]() | 5 plqws 2016-06-24 17:18:05 +08:00 啥外包还不能给源代码… |
6 qqmishi 2016-06-24 17:22:06 +08:00 via Android 变量名改为拼音首字母缩写。 多用全局变量。 宏满天飞。 说实话,你看看重构和代码整洁之道然后反着来就好了。 要源码就不给他们维护,多简单,给多少钱办多少事,源码维护二选一。 如果是因为双方前期没沟通好导致了楼主对要求的误解的话,请忽略我上面的回答。 |
![]() | 7 learnshare 2016-06-24 17:27:07 +08:00 ![]() 协议中还是要写明白,是不是要源码的。 |
![]() | 9 pelloz 2016-06-24 17:33:40 +08:00 混一堆不会被调用也没什么实际功能的几千上万行的函数和类...然后代码混淆,在没有没有开发文档的情况下谁也看不懂. |
![]() | 10 rekulas 2016-06-24 17:36:29 +08:00 |
![]() | 11 mhtt 2016-06-24 19:04:34 +08:00 via iPhone 与其抓破头皮搞这事,不如让一个口才好的商务和他们谈,再要一份代码费,当然如果合同中没有表明代码该属于对方的话,其实代码脱离了商务运作就啥都不是! @luili 你们遇到的这种的很恶心,数目这么大,对方没什么背景的话,你们可以直接找个律师,和他们搞合同,搞死对方。 |
![]() | 12 designer 2016-06-24 19:29:03 +08:00 各位,工程师。 HTML 简单的加密方案有没有! |
13 allenx 2016-06-24 19:30:31 +08:00 代码混淆吧 |
![]() | 14 dixyes 2016-06-24 20:16:37 +08:00 via Android ![]() 卦象做函数名 奇门做变量名 你们体会下: int 震(){ int 生=1; int 杜=3; return 乾(生+杜); } |
![]() | 15 yjxjn 2016-06-24 20:32:02 +08:00 讲真,看项目大小,项目大的话,要是百万行的项目,无所谓啊,只要你公司信誉不差,还会找你们的,因为读代码比写代码更难,再就是文档稍微写简略点,基本没几个人有很大耐心看下去的。 |
16 XianZaiZhuCe 2016-06-24 20:43:24 +08:00 via iPhone 不给源码,如何部署?托管在你们这? |
![]() | 18 Felldeadbird 2016-06-24 21:18:55 +08:00 via iPhone 说真的加密代码的外包公司也够坑的。做完这笔人家不会再找你做单子的。 |
20 qnnnnez 2016-06-24 22:23:03 +08:00 |
21 owt5008137 2016-06-24 22:30:52 +08:00 via Android 如果项目小,人家自己再写一遍也无所谓。没啥好保密的,如果项目大,给他们源码不给文档。没有你的技术支持他敢用?修 BUG 或者新需求会搞死他的 |
![]() | 22 pynix 2016-06-24 22:59:04 +08:00 自带代码混淆技能。。。 |
23 qnnnnez 2016-06-24 23:15:56 +08:00 via Android |
![]() | 24 SlipStupig 2016-06-24 23:24:01 +08:00 可以采用以下方法去做(不过代价很高) 1.代码乱序:函数中间可以采用反复回调方式执行,函数名全部随机命名 2.代码膨胀:将条件判断语句进行膨胀,比如 if a == 3 ,变成 if a == 1 : pass elseif a a -2 : a -= 0 elseif a ==3: do, 重载操作符号,将类拆分成多个类,各种集成,对类成员调用只能进行回调,代码中随机嵌入各种无意义指令和变量 3.压缩和加密:先将代码编码转换为 UTF16 、 UTF7 或者用 url 编码,反正任意一种编码方式将代码块进行 AES 随机加密(需要自己定义解密函数),然后把代码用变异压缩算法去压缩(解压函数需要自己写) 如果这么做生产的代码解密都要解半天,各种垃圾代码严重影响效率,最重要的是外包不都是签了协议的么,你这么做不违约? |
![]() | 25 only0jac OP @Pandara 请教怎么个混淆法?混淆了还怎么编译? @annielong 代码压缩, ide 一格式化岂不是一点用没有 @jugelizi .net @luili 很纳闷源码混淆了还能编译通过么 @XianZaiZhuCe 编译型 @Felldeadbird 主要是前期没说要代码,我们也没打算给代码 @SlipStupig 没说给代码,不违约的,谢谢,加密后是不是不能运行了? |
![]() | 26 typcn 2016-06-25 00:43:04 +08:00 @only0jac .net 的话,很简单,你下载一个混淆加密,代码保护工具,把你的二进制保护,比如 SA 然后,你再下载一个反编译工具,把这代码反编译回来 |
![]() | 27 techme 2016-06-25 00:48:06 +08:00 写个独立的加密器,把项目用到的配置文件加密起来 |
![]() | 28 zzzvvvxxxd 2016-06-25 00:55:22 +08:00 那么,一汽大众可以买一辆法拉利,要求再来一份引擎和车身的设计图纸吗? 如果要,这可比产品和产品后期维护贵多了哦~ 要钱 不要加密 |
![]() | 29 ADMlN 2016-06-25 01:19:27 +08:00 via Android 咱向来只用机器码写程序,你用十六进制编辑器打开可执行文件即可获得源码。 |
![]() | 30 msg7086 2016-06-25 02:57:14 +08:00 @zzzvvvxxxd 如果一汽大众向法拉利外包设计了一辆车,那么 是的,必须提供引擎和车身的设计图纸。 这是看你到底是购买的产品(Buy)还是外包的产品(Outsource)。 比如我要买一个 Windows ,那是$149.99 ,但是我要把操作系统的制造外包给一个公司,那可能就是$49,000,000.99 了。前者你有使用权,后者你有著作权。这是两回事。 |
31 df4VW 2016-06-25 03:36:51 +08:00 外包项目还有不给源码的? |
![]() | 32 zetaoouyang 2016-06-25 05:06:53 +08:00 最好的建议:要源码,什么价位, 不要源码是什么价位,把条件谈清楚,写在合同中 |
![]() | 33 SlipStupig 2016-06-25 07:03:59 +08:00 |
![]() | 34 xuwenmang 2016-06-25 07:32:35 +08:00 定制软件还有不给源码的? |
35 zaishanfeng 2016-06-25 08:31:43 +08:00 via Android 这样做, 找几种不同的混淆方法, 每种方法混淆一部分代码, 这样就算他们破解了一种还有另一种 哈哈 |
![]() | 37 Felldeadbird 2016-06-25 11:28:58 +08:00 在回复一次,如果要加密的话,就自己保留一份源码。然后把程序中的变量,函数等全部混淆。除了这部之外,接着就去实行加密。 例如 PHP 则进行扩展加密。 这样基本可以限制死大部分了。。 最后不论如何,我觉得做外包如果靠加密来维持 售后的话,做得不长久。。。 |
![]() | 38 only0jac OP @zaishanfeng 混淆后还能直接运行么 |
39 raincious 2016-06-25 11:45:38 +08:00 |
![]() | 40 EPr2hh6LADQWqRVH 2016-06-25 11:58:33 +08:00 敝帚自珍 |
![]() | 41 kidult 2016-06-25 12:37:35 +08:00 合同去哪了 如果没有合同的话,当我没说 |
42 jeffery9 2016-06-25 12:49:10 +08:00 鄙视一下,貌似自己写的代码有多牛逼是的, github 上公开的代码多的是 //、 就是拿掉代码,没有相关的文档,想要掌握还是很有难度的 //除非你的代码本身就没有啥价值。。。 哈哈 |
![]() | 43 qiaobeier 2016-06-25 22:14:54 +08:00 建立良好的合作互利关系->收足预付->完善的合同 |