我想保护我的python源代码,我知道不可能有绝对的保护,但仍然应该有一些方法使之足够困难或相当耗时。我想要
1)自动删除所有文档、注释和
2)系统地更改模块中变量和函数的名称(混淆?),以便在变量和函数的内部名称无法发音时保留外部接口(具有有意义的名称)。
也许最好的解决方案是下面的,这会使1)和2)变得多余:
3)是否有一种简单的方法可以将python模块编译到.so libraries中,该方法具有清晰的界面,并且哪些可以被其他python模块使用?它与用ditudil构建C和C++扩展类似,除了源代码是Python本身,而不是C/C++。其思想是将所有“秘密代码”组织到模块中,编译它们,然后将它们导入到其他不被视为秘密的python代码中。
再一次,我意识到一切都可以逆向工程,我认为从实用的角度来说,大多数普通的开发人员将无法逆向工程代码,即使他们能够,道德/法律/时间的原因将使他们三思而后行,如果他们真的想在这方面工作。
正如mgilson在评论中提到的,Cython可能是你最好的选择。一般来说,您可以使用它将纯python源代码转换为编译的扩展模块。虽然Cython的主要目的是提高性能,但是使用它来保护源代码不应该有任何障碍。它输出的扩展模块不受任何特殊方式的限制,所以以前在Python中能够做的任何事情,都应该能够从Cython生成的扩展模块中完成。Cython在支持的特性方面确实存在一些已知的限制,这些特性可能需要改进,但总体而言,它看起来非常适合为您的目的服务。
相关问题 更多 >
编程相关推荐