Python 代码的加密问题

2019 年 11 月 29 日
 1419co1in

团队开发了一个 Web 系统,后端用的是 Python/Django,现在想把它卖给客户,但是领导要求代码加密(不能看见源码),不让直接把源码部署在阿里云上或者客户的主机上,怕源码泄漏被二次贩卖或者修改授权。

如何说服领导或者有什么办法加密代码?

8482 次点击
所在节点    Python
29 条回复
linlance
2019 年 11 月 29 日
好像没啥办法吧。。。听听其他大牛怎么说。

这种按照法律,版权不是就是归甲方么?
你们是干活的。。。。干活的不是乙方么?
woshifyz
2019 年 11 月 29 日
这个是个老问题了,没啥特别完美的办法,找些关键地方,用 cython 重写下吧
qile1
2019 年 11 月 29 日
dack 那个直接做成那样的发布可以不,更新就更新容器
whoosy
2019 年 11 月 29 日
google 去搜 Cpython 编译 python 代码
vakara
2019 年 11 月 29 日
用 pyinstaller
1419co1in
2019 年 11 月 29 日
@linlance 可能不想卖代码,想用定期授权的方式
catcalse
2019 年 11 月 29 日
pyd
Hanggi
2019 年 11 月 29 日
这个是这样,一种是你们提供后期的服务,这种情况下你们可以全权负责维护等工作,当然这样成本太高。
如果把程序卖给客户,而客户对代码不可见,且后期无法做任何修改,那么维护和更新谁来做呢?
1419co1in
2019 年 11 月 29 日
@vakara 试过,可能对 Django 兼容性不行,各种 import 错误,后来放弃了
wangyzj
2019 年 11 月 29 日
cython
pypy
pyinstaller
实际上原理都差不多
1419co1in
2019 年 11 月 29 日
@qile1 你说的是 docker 吗,docker 镜像和容器里的东西可以直接拿到的
1419co1in
2019 年 11 月 29 日
@woshifyz 看来这能用这种方法了
keakon
2019 年 11 月 29 日
我是用 cython 编译所有模块,main.py 里只 import 和调用 run()。
wuwukai007
2019 年 11 月 29 日
一个小 demo,转成 pyc,放在项目的相同目录下,
https://gist.github.com/tosmart01/a048fc56ff967f7e8a1f173a514f73b2
nyanyh
2019 年 11 月 29 日
自己修改编译个 python 解释器,修改下字节码对应的指令
但想破解的话肯定是能弄出来的,关键代码用 C 写吧
CallMeReznov
2019 年 11 月 29 日
@vakara #5 我昨天次啊把我不小心删掉的脚本用 exe 反编译回来


不过可以试试用 pyinstaller 编译后在加一层壳
如果不是专业队,应该是不会从网上随便找的教程里把你的东西反编译出来了
CallMeReznov
2019 年 11 月 29 日
@1419co1in #9 把包直接复制到工程文件夹下面好像就可以了
agegcn
2019 年 11 月 29 日
cython 编译几个核心模块,包括授权的
CEBBCAT
2019 年 11 月 29 日
这个问题已经有人问过了呀
[Python 代码不能加密?]( https://www.v2ex.com/t/348602)
[一般 Python 服务部署在公有云服务器上,如何做代码保护?]( https://www.v2ex.com/t/403957)
提问前记得搜索喔
imn1
2019 年 11 月 29 日
我给的建议是:
整体加密不实际
把一些核心算法、关键业务模块,转为 C/C++打包的 dll/so,由 python ctype 调用,这样可能更实际一些

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

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

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

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

© 2021 V2EX