代码之家  ›  专栏  ›  技术社区  ›  Eddie Parker

python应用程序:你能以某种方式保护你的代码吗?

  •  7
  • Eddie Parker  · 技术社区  · 16 年前

    如果真的有“最好”的方法,那是什么? 发布python应用程序并确保人们不能(轻松地)对您的算法/安全性/工作进行反向工程的最佳方法是什么?

    如果没有“最佳”方法,有哪些不同的选择?

    背景: 我喜欢用Python编写代码,并且希望用它发布更多的应用程序。我想知道的一件事是,人们有可能绕过我输入的任何许可代码,或者能够盗用我的整个源代码库。我听说过Py2Exe和类似的应用程序,但我很好奇是否有“首选”的方法,或者这个问题是否只是生活的一个事实。

    5 回复  |  直到 16 年前
        1
  •  12
  •   Matthew Flaschen    16 年前

    默默无闻的安全 从未 作品。如果您必须使用专有许可证,请通过法律强制执行,而不是半途而废的混淆尝试。

    如果你担心他们学习你的安全算法(例如密码术),同样适用。真正有用的安全算法(如AES)是安全的,即使算法是完全已知的。

        2
  •  7
  •   Bill Karwin    16 年前

    即使使用C语言或Java等编译语言,人们也可以在有动机和技术能力的情况下执行逆向工程。模糊并不是对此的可靠保护。

    您可以在软件的最终用户许可协议中添加对反向工程的禁止。大多数私有公司都这样做。但这并不能防止违规,它只会给你法律上的追索权。

    这个 最好的 解决方案是提供产品和服务,在这些产品和服务中,用户读取代码的权限不会损害您销售产品或服务的能力。您的业务基于所提供的服务或对数据定期更新的订阅,而不是代码本身。

    示例:Slashdot实际上使他们的网站代码可用。这会损害他们运行网站的能力吗?不。

    另一个补救办法是设定你的价格点,这样盗版你的代码的努力比简单地购买合法的许可证来使用你的产品要昂贵得多。乔尔·斯波斯基在他的文章和播客中对此提出了建议。

        3
  •  5
  •   Koen Bok    16 年前

    运输A commercial mac desktop app 在python中,我们完全按照其他答案中描述的那样做;用一个体面的eula来保护自己,而不是通过模糊来保护自己。

    我们从来没有遇到过任何人逆向工程我们的代码的问题。如果我们这样做,我相信我们可以采取法律行动。所以是的,这是生活的一个事实。但这并不难相处。找一个写了一份像样的EULA的像样律师。

        4
  •  3
  •   alsuren    16 年前

    你要找的词很模糊。一个快速的谷歌显示:

    http://www.lysator.liu.se/~astrand/projects/pyobfuscate/

    但是:

    a)如果版权侵权成为一个问题,那么法律就站在您这边(只要您在所有文件中都包含适当的版权声明)。

    b)如果你很聪明的话,你也可以在开源应用上获利。

    c)如果您希望您的知识产权真正安全,那么唯一的答案就是不要让任何人首先拥有它:将您的应用程序编写为Web应用程序,(我建议使用django),并且只有您的Web托管提供商可以访问您的代码。

        5
  •  1
  •   George    16 年前

    PY2EXE

    在Windows中,py2exe是向最终用户传送代码的一种方式,py2exe捆绑了Python解释器、必要的DLL以及编译为Python字节码的代码。

    下面是关于python字节码的说明,以了解它是什么样子的:

    http://www.python.org/doc/2.5.2/lib/bytecodes.html

    或者你可以使用 数字化信息系统 反汇编一些PYC/PYO文件。

    因此,使用py2exe类似于分发编译后的python(pyc/pyo)文件。

    Shedskin C++编译程序

    SeHebug编译器将Python的一个子集编译成C++,可以使用任何编译器编译到本机代码。

    派皮

    我对派比不太了解。根据他们的文档,Pypy能够生成C代码。