保护python源代码

时间:2018-02-15 02:29:00

标签: linux python-3.x

我想要保护python脚本,因为人们很可能已经知道是混蛋和窃取某些人工作,我真的想保护它。 可悲的是它很容易被盗......复制粘贴我的工作,我花了几个月然后有人改变位并声称它为自己。

如何阻止任何人查看代码? (我试过py2exe和类似的,但是因为它的.exe而且我不希望任何人害怕我的软件,因此通常对用户持怀疑态度)

Linux的 Python2& Python3

3 个答案:

答案 0 :(得分:2)

加密python代码,并在导入时将其解密。

步骤1-实现自己的模块加载器

您可以使用importlib来实现自己的python模块加载器。也就是说,您可以更改导入过程以解密加密的python代码。

但是您可能会说模块加载器也是用python编写的,可以在python脚本中轻松看到加密密钥。

让我们继续下一步。

第2步-用C / C ++重写模块加载器

由于cython,python模块可以用C / C ++编写。解密代码将被编译为二进制代码。与py或pyc文件相比,这很难逆向工程。

第3步-编写脚本来加密您的源树

这是最简单的部分。 :)

如果您对该主题感兴趣,该项目将为您提供帮助-pyprotect

答案 1 :(得分:1)

这里有两个问题:代码保护和属性。因此,许可将是第二个方面,但是从您的问题看来,许可本身并不是您的问题。存在一些模块来保护您的源代码,例如sourcedefender。它的工作原理很像@ lambda11所描述的,尽管我不知道他们是否使用C / C ++来完成其魔术。他们“做些魔术”使我个人感到紧张,代码保护是一回事,但是如果这是一个真正的问题,我想问题是最终获得代码有多困难。完全是另一个故事。但是,如果您希望找到简短的答案,那么,以前人们已经这样做了。

答案 2 :(得分:0)

我很久以前都遇到过同样的问题。 我可以说最好的和简短的解决方案是通过两个步骤:

1-在此处使用sourcedefender第三方加密源代码:

  • pip安装sourcedefender

  • 重要提示:您必须将sourcedefender导入为主代码文件中的第一行

  • 极为重要:您必须将所有pip安装的软件包导入main

    与项目加密文件中使用的完全相同的代码文件,例如:从x导入y

  • 使用以下命令加密您想要的任何文件:sourcedefender加密file.py

  • 然后:pyinstaller --onefile --add-binary加密代码文件; app.py'

  • 注意:如果您要启动GUI,请执行以下操作:

    如果名称 =='主要”: main()

    尝试以下方法:

    #if 名称 =='主要”: main()

2-使用软件许可API,例如:cryptolens