5

我想保护我的 python 源代码,我知道没有绝对的保护是可能的,但仍然应该有一些方法让它很难做到或相当耗时。我想

1)自动删除所有文档、评论和

2)系统地更改模块内的变量和函数的名称(混淆?),以便我可以保留一个外部接口(具有有意义的名称),而变量和函数的内部名称是不可能发音的。

可能使 1) 和 2) 变得多余的最佳解决方案如下

3)有没有一种简单的方法可以将python模块编译为.so库,界面清晰,其他python模块可以使用?它类似于使用 distutils 构建 C 和 C++ 扩展,只是源代码是 python 本身而不是 C/C++。这个想法是将所有“秘密代码”组织成模块,编译它们,然后将它们导入到不被认为是秘密的其余 python 代码中。

再次,我知道一切都可以逆向工程,我认为从务实的角度来看,大多数普通开发人员将无法对代码进行逆向工程,即使他们能够,道德/法律/时间原因也会使他们如果他们真的想在这方面工作,请三思而后行。

4

1 回答 1

6

正如 mgilson 在评论中提到的那样,Cython 可能是您最好的选择。一般来说,您可以使用它来将您的纯 python 源代码转换为已编译的扩展模块。虽然 Cython 的主要目的是提高性能,但使用它来保护源代码不应该有任何障碍。它输出的扩展模块不受任何特殊方式的限制,因此您之前可以在 Python 中执行的任何操作,您应该可以从 Cython 生成的扩展模块中执行。Cython 在可能需要解决的受支持功能方面确实存在一些已知限制,但总体而言,它看起来非常适合您的目的。

于 2012-07-11T18:01:41.207 回答