如何保护python源代码并将其编译到.so库中?

2024-05-17 04:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想保护我的python源代码,我知道不可能有绝对的保护,但仍然应该有一些方法使之足够困难或相当耗时。我想要

1)自动删除所有文档、注释和

2)系统地更改模块中变量和函数的名称(混淆?),以便在变量和函数的内部名称无法发音时保留外部接口(具有有意义的名称)。

也许最好的解决方案是下面的,这会使1)和2)变得多余:

3)是否有一种简单的方法可以将python模块编译到.so libraries中,该方法具有清晰的界面,并且哪些可以被其他python模块使用?它与用ditudil构建C和C++扩展类似,除了源代码是Python本身,而不是C/C++。其思想是将所有“秘密代码”组织到模块中,编译它们,然后将它们导入到其他不被视为秘密的python代码中。

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


Tags: 模块方法函数代码文档名称源代码工程
1条回答
网友
1楼 · 发布于 2024-05-17 04:34:29

正如mgilson在评论中提到的,Cython可能是你最好的选择。一般来说,您可以使用它将纯python源代码转换为编译的扩展模块。虽然Cython的主要目的是提高性能,但是使用它来保护源代码不应该有任何障碍。它输出的扩展模块不受任何特殊方式的限制,所以以前在Python中能够做的任何事情,都应该能够从Cython生成的扩展模块中完成。Cython在支持的特性方面确实存在一些已知的限制,这些特性可能需要改进,但总体而言,它看起来非常适合为您的目的服务。

相关问题 更多 >