如何使用 license 限制 Python web 运行

251 天前
 sky857412

第一次使用 python ,使用 fastapi 开发了一个 web 项目,现在需要对项目进行限制,该如何实现呢? 源码也要部署到对方的机器上,如何防止它修改 license 的限制呢?

2188 次点击
所在节点    Python
24 条回复
Ansen
251 天前
混淆后打包成二进制?
yanjieee
251 天前
之前用过 pyarmor 商业化,感觉还可以。
iorilu
251 天前
你提供源码的话 ,没法限制啊

不管你怎么弄, 对方随便找个人改下代码就行

再说了,web 项目很难限制, 有这种需求应该用 go 之类的东西开发
elechi
251 天前
源码都给了,没法限制了
Vegetable
251 天前
写点 bug
jenlors
251 天前
之前做过相关的方案,使用 [https://github.com/Falldog/pyconcrete]( https://github.com/Falldog/pyconcrete) 加密代码,然后代码里面导入 license ,license 里面写入过期时间、机器码之类的信息,license 使用对称加密之类的算法加密,然后在程序启动的时候解密并且检测 license 有效性。
Jirajine
251 天前
用 nuitka 把业务库编译一下。
coolair
251 天前
@yanjieee #2 这个软件有开源版?我看有个 GitHub 。这个软件可以整个项目加密吗?还是只能单文件加密?
Abbeyok
251 天前
在用 pyarmor ,可以试试
bianhui
251 天前
给源码就没法限制住了。不用折腾了。
sunwei0325
251 天前
事先将代码用密钥加密一下, 然后在 sys.meta_path 里面加载的时候解密一下, 关键词: importlib
Ackvincent
251 天前
pyarmor +1
jjx
251 天前
部分保护,部分开放

需要保护的部分用 cython 编译
fcfangcc
251 天前
不要给源码, 用 cython 把.py 编译成 .so 然后打包部署
Mars2333
251 天前
t/969968
这答案不就来了嘛
flyqie
251 天前
先 aes 再 rsa(私加公解), 理论上来说不可能存在伪授权.

至于能不能通过其他手段改密钥破...那就是 cython 的事情了.
flyqie
251 天前
@flyqie #16

没记错的话 rsa 比较特殊, 目前的主流实现是用私钥文件可以拿到公钥文件, 但用公钥文件基本不可能拿到私钥文件(或者说极其困难).
iorilu
251 天前
@sunwei0325 密钥写在哪里, 总是明文啊
lanwairen123
250 天前
之前遇到一个加密,是直接修改 Python 主程序代码,植入 openssl 解密模块,解密公钥硬编码到 python 主程序,然后用私钥加密代码。程序运行直接用修改过的 python 程序执行,先解密代码再运行。
lanwairen123
250 天前
只是为了防止修改 license 的限制的话,把授权信息用私钥加密,程序内置公钥解密,只要私钥不泄露,理论上就可以防止修改 license 限制,但有源码这些限制等于没有

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

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

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

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

© 2021 V2EX