最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python代碼的幾種常見(jiàn)加密方式分享

 更新時(shí)間:2022年07月21日 10:02:31   投稿:hqx  
這篇文章主要介紹了python代碼的幾種常見(jiàn)加密方式分享,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下

Python的文件類型介紹:

  • .py python的源代碼文件
  • .pyc Python源代碼import后,編譯生成的字節(jié)碼
  • .pyo Python源代碼編譯優(yōu)化生成的字節(jié)碼。pyo比pyc并沒(méi)有優(yōu)化多少,只是去掉了斷言
  • .pyd Python的動(dòng)態(tài)鏈接庫(kù)(Windows平臺(tái))
  • .so

常見(jiàn)的源碼保護(hù)手段有如下幾種:

1.發(fā)行.pyc文件

pyc文件是py文件經(jīng)過(guò)編譯后生成的二進(jìn)制文件,python提供py_compile內(nèi)置模塊把py文件編譯為pyc文件,得到的.pyc文件可以直接運(yùn)行python xxx.pyc

.pyc只能在特定版本的解釋器上運(yùn)行

1.1 編譯加密

mian.py

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

編譯指令:

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

1.2 是否可逆

  • pyc加密現(xiàn)成的反編譯工具,可以反編譯得到源代碼.
  • 使用uncompyle庫(kù)進(jìn)行反編譯

可逆

測(cè)試:

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

1.3是否影響模塊調(diào)用

不影響使用

# coding=utf-8
# 調(diào)用模塊main
from main import deep_flatten
print(deep_flatten([1, [2], [[3], 4], 5]))

2.代碼混淆

在線工具 

  • 1.1 降低代碼可讀性
  • 1.2 不影響模塊之間調(diào)用

3.生成exe可執(zhí)行文件

使用py2exe

py2exe是將Python代碼轉(zhuǎn)換為 Windows 平臺(tái)上的可執(zhí)行文件的工具,只能在windos上使用,原理是譯為 .pyc 文件,加上一些動(dòng)態(tài)連接依賴文件,一起打包成一個(gè)可執(zhí)行文件。

pip install py2exe

需要編寫setup.py文件:

#!/usr/bin/env python
from distutils.core import setup
import py2exe
setup(console=[f'E:\_Py_Project\leanPy\work\代碼加密\main1.py'])

然后執(zhí)行 python setup.py py2exe

  • 1.1 是否可逆

不可逆

  • 1.2 是否影響模塊調(diào)用

不影響

4…py文件轉(zhuǎn)化為.so文件

生成使用 Cython

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

pip install Cython

setup.py

from distutils.core import setup
from Cython.Build import cythonize
setup(name='main1',
     ext_modules=cythonize(f'E:\_Py_Project\leanPy\work\代碼加密\main1.py'))

python setup.py build_ext

在windos下生成.pyd文件

測(cè)試 .pyd文件,把mian1.py刪除,把.pyd文件移動(dòng)到.py原來(lái)目錄下

在linux下生成.so文件

測(cè)試:

  • 1.1 是否可逆:

不可逆

  • 1.2 是否影響模塊調(diào)用

不影響

5.附加運(yùn)行輔助包文件

PyArmor

pip install pyarmor==6.8.1

pyarmor obfuscate main.py同目錄下所有的 *.py文件都會(huì)被加密

方式一:高級(jí)加密模式,需要引導(dǎo)代碼

方式二:超級(jí)加密模式

超級(jí)模式只需要一個(gè)運(yùn)行輔助文件,沒(méi)有了所謂的引導(dǎo)代碼

pyarmor obfuscate --advanced 2 .\main1.py

方式三: 虛擬加密模式

高級(jí) + 虛擬

pyarmor obfuscate --advanced 3 .\main1.py

超級(jí) + 虛擬

pyarmor obfuscate --advanced 4 .\main1.py

輔助文件和編譯文件

幾種加密方式對(duì)比:

到此這篇關(guān)于python代碼的幾種常見(jiàn)加密方式分享的文章就介紹到這了,更多相關(guān)python加密方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python字符串切割:str.split()與re.split()的對(duì)比分析

    python字符串切割:str.split()與re.split()的對(duì)比分析

    今天小編就為大家分享一篇python字符串切割:str.split()與re.split()的對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • python numpy庫(kù)linspace相同間隔采樣的實(shí)現(xiàn)

    python numpy庫(kù)linspace相同間隔采樣的實(shí)現(xiàn)

    這篇文章主要介紹了python numpy庫(kù)linspace相同間隔采樣的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python異步Web框架sanic的實(shí)現(xiàn)

    python異步Web框架sanic的實(shí)現(xiàn)

    這篇文章主要介紹了python異步Web框架sanic的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python獲取文件所在目錄和文件名的方法

    Python獲取文件所在目錄和文件名的方法

    下面小編就為大家?guī)?lái)一篇Python獲取文件所在目錄和文件名的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • 在Django的URLconf中使用多個(gè)視圖前綴的方法

    在Django的URLconf中使用多個(gè)視圖前綴的方法

    這篇文章主要介紹了在Django的URLconf中使用多個(gè)視圖前綴的方法,Django是Python中最為著名的遵循MVC結(jié)構(gòu)的開(kāi)發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • Python3實(shí)現(xiàn)抓取javascript動(dòng)態(tài)生成的html網(wǎng)頁(yè)功能示例

    Python3實(shí)現(xiàn)抓取javascript動(dòng)態(tài)生成的html網(wǎng)頁(yè)功能示例

    這篇文章主要介紹了Python3實(shí)現(xiàn)抓取javascript動(dòng)態(tài)生成的html網(wǎng)頁(yè)功能,結(jié)合實(shí)例形式分析了Python3使用selenium庫(kù)針對(duì)javascript動(dòng)態(tài)生成的HTML網(wǎng)頁(yè)元素進(jìn)行抓取的相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • Python文件讀取read()?readline()?readlines()函數(shù)使用場(chǎng)景技巧示例

    Python文件讀取read()?readline()?readlines()函數(shù)使用場(chǎng)景技巧示例

    這篇文章主要介紹了Python文件讀取read() readline()及readlines()函數(shù)使用場(chǎng)景技巧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Python?OpenCV獲取圖片的基本參數(shù)信息

    Python?OpenCV獲取圖片的基本參數(shù)信息

    在圖像處理領(lǐng)域,了解圖像的基本信息是必不可少的第一步,本文主要介紹了如何使用Python?OpenCV獲取圖片的基本參數(shù)信息,感興趣的小伙伴可以了解下
    2024-11-11
  • Python虛擬環(huán)境venv用法詳解

    Python虛擬環(huán)境venv用法詳解

    這篇文章主要介紹了Python虛擬環(huán)境venv用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python實(shí)現(xiàn)彈球小游戲的示例代碼

    Python實(shí)現(xiàn)彈球小游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)簡(jiǎn)單的彈球小游戲,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2022-11-11

最新評(píng)論

屏东县| 报价| 东安县| 临安市| 承德县| 醴陵市| 诸暨市| 祁连县| 杭州市| 高邑县| 莱芜市| 扶绥县| 台湾省| 连城县| 资中县| 凤阳县| 西峡县| 英德市| 铜川市| 馆陶县| 精河县| 双江| 石河子市| 绵竹市| 白水县| 依安县| 拉孜县| 肇州县| 渭南市| 祁门县| 民丰县| 闽清县| 黄骅市| 天等县| 迁西县| 文昌市| 东乡族自治县| 罗城| 柘荣县| 汝州市| 昂仁县|