
团队开发了一个 Web 系统,后端用的是 Python/Django,现在想把它卖给客户,但是领导要求代码加密(不能看见源码),不让直接把源码部署在阿里云上或者客户的主机上,怕源码泄漏被二次贩卖或者修改授权。
如何说服领导或者有什么办法加密代码?
1 linlance Nov 29, 2019 好像没啥办法吧。。。听听其他大牛怎么说。 这种按照法律,版权不是就是归甲方么? 你们是干活的。。。。干活的不是乙方么? |
2 woshifyz Nov 29, 2019 这个是个老问题了,没啥特别完美的办法,找些关键地方,用 cython 重写下吧 |
3 qile1 Nov 29, 2019 via Android dack 那个直接做成那样的发布可以不,更新就更新容器 |
4 whoosy Nov 29, 2019 google 去搜 Cpython 编译 python 代码 |
5 vakara Nov 29, 2019 via Android 用 pyinstaller |
7 catcalse Nov 29, 2019 pyd |
8 Hanggi Nov 29, 2019 这个是这样,一种是你们提供后期的服务,这种情况下你们可以全权负责维护等工作,当然这样成本太高。 如果把程序卖给客户,而客户对代码不可见,且后期无法做任何修改,那么维护和更新谁来做呢? |
10 wangyzj Nov 29, 2019 cython pypy pyinstaller 实际上原理都差不多 |
14 wuwukai007 Nov 29, 2019 一个小 demo,转成 pyc,放在项目的相同目录下, https://gist.github.com/tosmart01/a048fc56ff967f7e8a1f173a514f73b2 |
15 nyanyh Nov 29, 2019 自己修改编译个 python 解释器,修改下字节码对应的指令 但想破解的话肯定是能弄出来的,关键代码用 C 写吧 |
16 CallMeReznov Nov 29, 2019 |
17 CallMeReznov Nov 29, 2019 @1419co1in #9 把包直接复制到工程文件夹下面好像就可以了 |
18 agegcn Nov 29, 2019 cython 编译几个核心模块,包括授权的 |
19 CEBBCAT Nov 29, 2019 |
20 imn1 Nov 29, 2019 我给的建议是: 整体加密不实际 把一些核心算法、关键业务模块,转为 C/C++打包的 dll/so,由 python ctype 调用,这样可能更实际一些 |
22 ungrown Nov 29, 2019 via Android @woshifyz 纯 python 代码可以直接用 cython 编译成二进制库,只不过无法享受到静态类型带来的速度优化罢了 /td> |
23 crawl3r Nov 29, 2019 最简单的方法是卖服务器或者虚拟机镜像,设置脚本开机启动,然后不给登录账号密码。这样他们只能用但看不到源码。 |
24 qile1 Nov 29, 2019 via Android 要不你编译为 pyc,然后写个 py 代码,在 pyc 文件前面插入一些二进制文件,运行时跳过这些二进制字符运行? |
25 0x5f Nov 29, 2019 上次好像看到一个老哥说的是代码跑起来之后把代码删了 |
26 EurekaSeven Nov 29, 2019 @0x5f 这个挺狠。。。话说以前我做外包的时候老板就是让我们搞这种,我们顶多做个 pyc 罢了。。 |
27 HuberyPang Nov 30, 2019 https://github.com/ArvinMei/py2so github star 的一个项目 把 python 代码打包成.so 不过这个打包环境和部署环境要一样 。我们的项目也是 django 的 把核心代码加密 不影响项项目运行。这个是项目是之前作者 python2 版本写的,自己修改一下就能用。 |