如果真的有一种"最好的"方式,那么发布python应用程序的最佳方法是什么,并确保人们不能(轻松地)反向设计您的算法/安全/工作?
如果没有"最佳"方式,有哪些不同的选择?
背景:我喜欢用Python编码,并希望用它发布更多应用程序.我想知道的一件事是,人们可能会绕过我放入的任何许可代码,或者只能破掉我的整个源代码库.我听说过Py2Exe和类似的应用程序,但我很好奇是否有"首选"方法,或者这个问题只是生活中的事实.
通过默默无闻的安全从未奏效.如果您必须使用专有许可证,请通过法律强制执行,而不是半生不熟的混淆尝试.
如果您担心他们学习您的安全性(例如加密算法),同样适用.即使算法是完全已知的,真实,有用的安全算法(如AES)也是安全的.
即使你使用像C#或Java这样的编译语言,如果他们有动力和技术能力,人们也可以进行逆向工程.混淆不是对此的可靠保护.
您可以为您的软件的最终用户许可协议添加禁止逆向工程的禁令.大多数专有公司都这样做.但这并不能防止违规,它只会给你法律追索权.
将最好的解决方案是提供产品和服务,其中用户的访问阅读您的代码不会伤害你的推销自己的产品或服务的能力.将您的业务基于所提供的服务,或订阅定期更新数据,而不是代码本身.
示例:Slashdot实际上为他们的网站提供了他们的代码.这会损害他们运营网站的能力吗?没有.
另一个补救措施是设置您的价格点,以便盗用您的代码的努力比仅仅购买合法的许可证以使用您的产品更昂贵.Joel Spolsky在他的文章和播客中提出了这种效果的建议.
使用Python发布商业mac桌面应用程序,我们完全按照其他答案中的描述进行操作; 通过法律保护自己有一个体面的EULA,而不是通过混淆.
我们从未对人们对我们的代码进行逆向工程有任何麻烦.如果我们这样做,我相信我们可以采取法律行动.所以是的,这是生活中的事实.但是一个不太难以忍受的人.只是找一个体面的律师写一个体面的EULA.