大佬们 请教一个东西 Python 代码加密 - V2EX
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 2023-07-26 09:09:16 +08:00 3482 次点击
    这是一个创建于 876 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大佬们

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

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

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

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

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

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

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

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

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

    然而,值得强调的是,以上方法只能增加破解的难度,但无法完全阻止有意愿的攻击者。若你的代码涉及特别敏感的信息或算法,最安全的做法是将关键部分放在服务器端,而不是暴露在客户端代码中。无论如何,即使你加密了代码,也应该将重点放在代码的质量、安全性和可靠性上,而不是过度依赖加密来保护代码。
    Badupp
        5
    Badupp  
       2023-07-26 10:28:13 +08:00
    cPython 打包成 so 吧
    mryaocom
        6
    mryaocom  
    OP
       2023-07-26 11:37:25 +08:00
    @Badupp 这玩意有点坑, 每个平台都得打包一个,
    clemente0731
        7
    clemente0731  
       2023-07-26 11:49:23 +08:00
    核心部分用 rust 写
    Jirajine
        8
    Jirajine  
       2023-07-26 12:25:47 +08:00
    随便编译混淆一下,代码多验证几处,让破解的成本大于代码本身的价值就足够了。
    DRM 的大忌是影响合法用户,让合法用户当“正版受害者”。
    duke807
        9
    duke807  
       2023-07-26 12:58:11 +08:00 via Android
    cython 打包成 wasm
    sadfQED2
        10
    sadfQED2  
       2023-07-26 13:18:40 +08:00 via Android
    脚本放虚拟机里面运行,开启虚拟机磁盘加密。(真实案例,千万级别项目就这样干的)
    r6cb
        11
    r6cb  
       2023-07-26 13:26:35 +08:00
    通过互联网提供服务
    wushenlun
        12
    wushenlun  
       2023-07-26 13:40:50 +08:00 via Android
    docker
    hanssx
        13
    hanssx  
       2024-01-26 17:21:24 +08:00
    @sadfQED2 我看他们有人说可以通过内存快照读取缓存的 python 代码?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1314 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 23:59 PVG 07:59 LAX 15:59 JFK 18:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86