python代碼得幾種常見加密方式分享

目錄

Python得文件類型介紹:

  • .py python得源代碼文件
  • .pyc Python源代碼import后,編譯生成得字節碼
  • .pyo Python源代碼編譯優化生成得字節碼。pyo比pyc并沒有優化多少,只是去掉了斷言
  • .pyd Python得動態鏈接庫(Windows平臺)
  • .so

常見得源碼保護手段有如下幾種:

1.發行.pyc文件

pyc文件是py文件經過編譯后生成得二進制文件,python提供py_compile內置模塊把py文件編譯為pyc文件,得到得.pyc文件可以直接運行python xxx.pyc

.pyc只能在特定版本得解釋器上運行

1.1 編譯加密

mian.py

def spread(arg):    ret = []    for i in arg:        if isinstance(i, list):            ret.extend(i)    else:        ret.append(i)    return retdef deep_flatten(lst):    result = []    result.extend(        spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))    return resultprint(deep_flatten([1, [2], [[3], 4], 5]))

編譯指令:

  • python -m py_compile main.py
  • python -m compileall main.py 批量

1.2 是否可逆

  • pyc加密現成得反編譯工具,可以反編譯得到源代碼.
  • 使用uncompyle庫進行反編譯

可逆

測試:

 pip install uncompyle uncompyle6 main.cpython-38.pyc > main.py

1.3是否影響模塊調用

不影響使用

# coding=utf-8# 調用模塊mainfrom main import deep_flattenprint(deep_flatten([1, [2], [[3], 4], 5]))

2.代碼混淆

在線工具 

  • 1.1 降低代碼可讀性
  • 1.2 不影響模塊之間調用

3.生成exe可執行文件

使用py2exe

py2exe是將Python代碼轉換為 Windows 平臺上得可執行文件得工具,只能在windos上使用,原理是譯為 .pyc 文件,加上一些動態連接依賴文件,一起打包成一個可執行文件。

pip install py2exe

需要編寫setup.py文件:

#!/usr/bin/env pythonfrom distutils.core import setupimport py2exesetup(console=[f'E:_Py_ProjectleanPywork代碼加密main1.py'])

然后執行 python setup.py py2exe

  • 1.1 是否可逆

不可逆

  • 1.2 是否影響模塊調用

不影響

4…py文件轉化為.so文件

生成使用 Cython

它得原理:將 .py/.pyx 編譯為 .c文件,再將 .c文件編譯為 .so(Unix) 或 .pyd(Windows)

pip install Cython

setup.py

from distutils.core import setupfrom Cython.Build import cythonizesetup(name='main1',     ext_modules=cythonize(f'E:_Py_ProjectleanPywork代碼加密main1.py'))

python setup.py build_ext

在windos下生成.pyd文件

測試 .pyd文件,把mian1.py刪除,把.pyd文件移動到.py原來目錄下

在linux下生成.so文件

測試:

  • 1.1 是否可逆:

不可逆

  • 1.2 是否影響模塊調用

不影響

5.附加運行輔助包文件

PyArmor

pip install pyarmor==6.8.1

pyarmor obfuscate main.py同目錄下所有得 *.py文件都會被加密

方式一:高級加密模式,需要引導代碼

方式二:超級加密模式

超級模式只需要一個運行輔助文件,沒有了所謂得引導代碼

pyarmor obfuscate --advanced 2 .main1.py

方式三: 虛擬加密模式

高級 + 虛擬

pyarmor obfuscate --advanced 3 .main1.py

超級 + 虛擬

pyarmor obfuscate --advanced 4 .main1.py

輔助文件和編譯文件

幾種加密方式對比:

到此這篇關于python代碼得幾種常見加密方式分享得內容就介紹到這了,更多相關python加密方式內容請搜索之家以前得內容或繼續瀏覽下面得相關內容希望大家以后多多支持之家!

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論1 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 国产精品天堂avav在线| 日本19禁综艺直接啪啪| 国产大屁股视频免费区| 久久久久亚洲精品无码蜜桃| 色综合天天综一个色天天综合网| 日本免费人成视频播放| 吃奶呻吟打开双腿做受在线视频| 免费观看无遮挡www的视频| www.中文字幕在线| 欧美高清在线精品一区 | 吃奶呻吟打开双腿做受在线视频| sao货水真多好浪好紧视频| 欧美福利在线播放| 国产日韩综合一区二区性色AV| 久久久久久国产精品视频| 精品三级66在线播放| 国产香蕉97碰碰视频VA碰碰看| 亚1州区2区三区4区产品| 色台湾色综合网站| 天天摸天天操免费播放小视频| 亚洲成人高清在线| 韩国福利一区二区美女视频| 成人国产一区二区三区| 亚洲精品亚洲人成在线麻豆| 国产成人三级视频在线观看播放| 手机小视频在线观看| 亚洲精品无码乱码成人| 黄页网址大全免费观看22| 性一交一乱一乱一视频| 亚洲欧美7777| 色综合热无码热国产| 壮汉紫黑粗大好深用力| 久久综合九色综合97伊人麻豆 | 日本高清色本免费现在观看| 国产精品密蕾丝视频| 久久中文字幕免费视频| 热RE99久久6国产精品免费| 国产探花在线观看| 一个人看的视频在线| 欧洲无码一区二区三区在线观看| 四虎国产永久免费久久|