
第一次使用 python ,使用 fastapi 开发了一个 web 项目,现在需要对项目进行限制,该如何实现呢? 源码也要部署到对方的机器上,如何防止它修改 license 的限制呢?
1 Ansen 2023-09-01 11:46:03 +08:00 混淆后打包成二进制? |
2 KingFong PRO 之前用过 pyarmor 商业化,感觉还可以。 |
3 iorilu 2023-09-01 14:12:41 +08:00 你提供源码的话 ,没法限制啊 不管你怎么弄, 对方随便找个人改下代码就行 再说了,web 项目很难限制, 有这种需求应该用 go 之类的东西开发 |
4 elehi 2023-09-01 14:33:15 +08:00 源码都给了,没法限制了 |
5 Vegetable 2023-09-01 14:35:20 +08:00 写点 bug |
6 jenlors 2023-09-01 14:37:00 +08:00 之前做过相关的方案,使用 [https://github.com/Falldog/pyconcrete]( https://github.com/Falldog/pyconcrete) 加密代码,然后代码里面导入 license ,license 里面写入过期时间、机器码之类的信息,license 使用对称加密之类的算法加密,然后在程序启动的时候解密并且检测 license 有效性。 |
7 Jirajine 2023-09-01 14:39:47 +08:00 via Android 用 nuitka 把业务库编译一下。 |
9 Ct5T66PVR1bW7b2z 2023-09-01 14:48:21 +08:00 在用 pyarmor ,可以试试 |
10 bianhui 2023-09-01 15:13:06 +08:00 给源码就没法限制住了。不用折腾了。 |
11 sunwei0325 2023-09-01 15:21:59 +08:00 事先将代码用密钥加密一下, 然后在 sys.meta_path 里面加载的时候解密一下, 关键词: importlib |
12 Ackvincent 2023-09-01 15:57:05 +08:00 pyarmor +1 |
13 jjx 2023-09-01 16:00:49 +08:00 部分保护,部分开放 需要保护的部分用 cython 编译 |
15 Mars2333 2023-09-01 17:05:10 +08:00 t/969968 这答案不就来了嘛 |
16 flyqie 2023-09-01 17:18:36 +08:00 先 aes 再 rsa(私加公解), 理论上来说不可能存在伪授权. 至于能不能通过其他手段改密钥破...那就是 cython 的事情了. |
17 flyqie 2023-09-01 17:23:18 +08:00 |
18 iorilu 2023-09-01 17:29:04 +08:00 @sunwei0325 密钥写在哪里, 总是明文啊 |
19 lanwairen123 2023-09-02 09:05:53 +08:00 之前遇到一个加密,是直接修改 Python 主程序代码,植入 openssl 解密模块,解密公钥硬编码到 python 主程序,然后用私钥加密代码。程序运行直接用修改过的 python 程序执行,先解密代码再运行。 |
20 lanwairen123 2023-09-02 09:10:56 +08:00 只是为了防止修改 license 的限制的话,把授权信息用私钥加密,程序内置公钥解密,只要私钥不泄露,理论上就可以防止修改 license 限制,但有源码这些限制等于没有 |
23 buffzty 2023-09-02 10:28:55 +08:00 你随便限制 用不了算我输 |
24 SenLief 2023-09-02 14:47:06 +08:00 python 天生不适合,还是改用 go 。 要不就不给源码,编译成库,在外面套一层认证服务器。 |