推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
oldgun
V2EX  ›  Python

大家有好的Python代码保护方案吗,希望不要有人说我不支持开源。。。

  •  
  •   oldgun · Dec 23, 2011 · 9984 views
    This topic created in 5435 days ago, the information mentioned may be changed or developed.
    在google上搜了一圈暂时没发现靠谱成熟的方案,不知道这里有没有人有经验?
    28 replies  •  1970-01-01 08:00:00 +08:00
    c
    c
    Dec 23, 2011
    1
    我原来也想加密自己代码,后来想想自己写的乱代码有人看吗?所以就无所谓了
    vicalloy
    vicalloy
    Dec 23, 2011
    2
    只发布pyc
    laihj
    laihj
    Dec 23, 2011
    3
    别发布
    oldgun
    oldgun
    OP
    Dec 24, 2011
    4
    @vicalloy pyc可以轻易被反编译的
    alsotang
    alsotang
    Dec 24, 2011
    5
    @vicalloy @oldgun pyc理论上很容易反编译。你看看能不能用ironpython或者jython来生成对应的.class文件?不过说起来.class文件也是可以反编译,比C++的二进制方便多了。
    可能说起来这些解释型的语言都很难保密吧。
    and,你可以把系统里面关键的部分用C++改写,然后python调用生成的二进制.so或.a,这样应该就跟C++写的程序一个保密级别了吧?毕竟要保密的部分不是整个代码啊。但这也只能保密关键算法部分,要是想保密逻辑...可能就真的要C++全部改写了。
    不知我的回答有没有帮助。
    windhunter
    windhunter
    Dec 24, 2011
    6
    我也有类似的苦恼。

    有时候不是不想开源,而是客观条件不允许。比如某些客户的某些内部数据规范无法公开。通常情况下,只好放弃使用python。选择其他的解决方案。

    目前我所知道的比较靠谱的方法是:
    修改python源码,改写生成pyc的部分,造成生成的pyc只能在自己的python解释器上使用。

    而代价是:程序离开了定制的解释器就跑不了。(有源码还是可以的,pyc不行)

    我理解社区对于python开源的心态。
    不过,我想知道的是,同样php也是开源,但有不少混淆器出现。(商业的非商业的都有)
    perl也是开源,貌似也有不错的混淆器(可惜perl不好读写)

    相比而言,只是php有zend这个公司支持,python没有。仅仅是这个区别就造成了python没有优秀混淆器的出现么?
    windhunter
    windhunter
    Dec 24, 2011
    7
    @alsotang load c库的办法看来也不错。
    lijia18
    lijia18
    Dec 24, 2011
    8
    混淆用处不大,别人想看照看。再者说网站逻辑需要很高的保密吗?大的网站给你代码你也看不懂,小的网站不用代码别人就能copy的一模一样。与其保护代码不如花心思在保护数据上吧。
    tioover
    tioover
    Dec 24, 2011
    9
    我记得有本书叫python黑帽客讲的就是反编译python,应该有解决方法
    reducm
    reducm
    Dec 24, 2011 via Android
    10
    用非脚本语言编译成二进制包装下行么
    oldgun
    oldgun
    OP
    Dec 24, 2011
    11
    @alsotang 保护关键代码这个是常用办法,但正如你说的有时候需要保护的还有逻辑。
    @windhunter 你说的是修改字节码吧,但我想有你的解释器,一样可以看的。
    @lijia18 python不是只用来写网站的
    dndx
    dndx
    Dec 24, 2011
    12
    纯Python没这潜力,最靠谱的还是C extension。
    skywinger
    skywinger
    Dec 24, 2011
    13
    加壳吧,加一个bin可执行码的壳。
    bhuztez
    bhuztez
    Dec 24, 2011
    14
    据说只要改用Perl写一遍就可以了
    skydark
    skydark
    Dec 24, 2011
    15
    用cython快速改装成C模块?
    mywaiting
    mywaiting
    Dec 24, 2011
    16
    @bhuztez 这是讽刺Perl的么.....完全亮了......
    alsotang
    alsotang
    Dec 25, 2011
    17
    @mywaiting @bhuztez 确实亮。
    Hyperion
    Hyperion
    Dec 25, 2011
    18
    @dndx +1 记得, 有篇文章里说过: python要保密, 就去写块c...
    ant_sz
    ant_sz
    Dec 25, 2011
    19
    @skydark cython?还有这种神器?我去google下
    oldgun
    oldgun
    OP
    Dec 26, 2011
    20
    小程序,桌面应用,决定换c#,实现起来应该不python容易。
    讨论到此结束,谢谢大家!
    oldgun
    oldgun
    OP
    Dec 26, 2011
    21
    比python容易。
    likuku
    likuku
    Dec 27, 2011
    22
    法制环境,用户习惯,固有文化。技术因素影响很少了。
    skywinger
    skywinger
    Dec 27, 2011
    23
    楼主C#的也不安全,照样可以反编译出来,除非用c、c++、delphi这类的原生编译型语言。
    oldgun
    oldgun
    OP
    Dec 27, 2011
    24
    @skywinger 至少比python好点,而且实现起来容易,并且用户比较固定,问题不大。
    python太裸奔了。
    oldgun
    oldgun
    OP
    Dec 27, 2011
    25
    @skywinger 题外话,delphi现在状况如何?
    skywinger
    skywinger
    Dec 27, 2011
    26
    @oldgun delphi据说目前可以跨平台可开发ios应用,具体的不大清楚。
    so898
    so898
    Dec 27, 2011
    27
    JAVA也是面临一样的问题,好在JAVA这边的混淆器这么多年已经成熟了
    PYTHON的话,纯服务器端,只给交互接口的话是个比较好的保护方案,不过这个只能给服务器应用……
    jint
    jint
    Jan 4, 2012
    28
    其实代码的价值没有想象的那么大,如果真是有广大市场的领域,再复杂的加密都有人能破解,
    你去卖盗版盘那里一看,什么软件都有。这是从你的客户层面说。
    从竞争者层面说,如果潜在利益够大,照着你的软件山寨一个都可以。
    真正的价值,在于你对相关业务逻辑或者商业模型的理解,以及融合到软件中的能力,这才是壁垒。
    我只是说说对大部分没太多技术含量的软件的看法,OS之类高难的不论。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2144 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 00:13 · PVG 08:13 · LAX 16:13 · JFK 19:13
    ♥ Do have faith in what you're doing.