V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
mryaocom
V2EX  ›  Python

大佬们 请教一个东西 Python 代码加密

  •  
  •   mryaocom · 276 天前 · 2277 次点击
    这是一个创建于 276 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大佬们

    python 代码加密有什么办法吗? 现在用的 nuitka 每个平台都得重新整一次

    我想加密代码 ,有激活码更好,

    13 条回复    2024-01-26 17:21:24 +08:00
    lingeo
        1
    lingeo  
       276 天前
    cython,没法跨平台。
    chenPiMeiHaoChi
        2
    chenPiMeiHaoChi  
       276 天前
    https://www.v2ex.com/t/958609#reply6
    前两天刚问的,我买了这东西但效果怎么样就不知道了。
    zhangyichent
        3
    zhangyichent  
       276 天前
    我一般是 cython 编译,我也见过改了解释器的
    encro
        4
    encro  
       276 天前
    以下来自 gpt chat:

    在 Python 中,完全防止代码破解是非常困难的,因为 Python 是一种解释性语言,它的源代码必须能够被解释器读取和理解。但是,你可以采取一些措施来加密或混淆你的代码,使其更加难以理解和破解。下面列出了一些常见的方法:

    字节码编译:使用 py_compile 模块将你的 Python 代码编译为字节码文件(.pyc ),这样源代码将不易被直接读取。但请注意,这只提供了轻微的保护,并不是真正的加密。

    混淆变量和函数名:使用无意义的、难以猜测的变量和函数名,增加了代码的阅读难度。

    代码加密工具:可以使用第三方工具,如 PyInstaller 、pyarmor 等,将 Python 代码打包成可执行文件,从而减少对源代码的直接访问。

    部分代码外部加载:将敏感部分的代码放在外部文件中,并在程序运行时动态加载。这样即使有人获取了主代码,也无法轻易获得完整的代码逻辑。

    使用 Cython 或 Numba:将关键部分的代码转换为 Cython 或 Numba 加速模块,这样可以提高代码的执行效率,同时也增加了代码的复杂性,使得破解变得更加困难。

    然而,值得强调的是,以上方法只能增加破解的难度,但无法完全阻止有意愿的攻击者。若你的代码涉及特别敏感的信息或算法,最安全的做法是将关键部分放在服务器端,而不是暴露在客户端代码中。无论如何,即使你加密了代码,也应该将重点放在代码的质量、安全性和可靠性上,而不是过度依赖加密来保护代码。
    Badupp
        5
    Badupp  
       276 天前
    cPython 打包成 so 吧
    mryaocom
        6
    mryaocom  
    OP
       276 天前
    @Badupp 这玩意有点坑, 每个平台都得打包一个,
    clemente0731
        7
    clemente0731  
       276 天前
    核心部分用 rust 写
    Jirajine
        8
    Jirajine  
       276 天前
    随便编译混淆一下,代码多验证几处,让破解的成本大于代码本身的价值就足够了。
    DRM 的大忌是影响合法用户,让合法用户当“正版受害者”。
    duke807
        9
    duke807  
       276 天前 via Android
    cython 打包成 wasm
    sadfQED2
        10
    sadfQED2  
       276 天前 via Android
    脚本放虚拟机里面运行,开启虚拟机磁盘加密。(真实案例,千万级别项目就这样干的)
    r6cb
        11
    r6cb  
       276 天前
    通过互联网提供服务
    wushenlun
        12
    wushenlun  
       276 天前 via Android
    docker
    hanssx
        13
    hanssx  
       92 天前
    @sadfQED2 我看他们有人说可以通过内存快照读取缓存的 python 代码?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   949 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:28 · PVG 03:28 · LAX 12:28 · JFK 15:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.