91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python代碼的常見加密方式是什么

發布時間:2022-07-21 13:43:14 來源:億速云 閱讀:150 作者:iii 欄目:開發技術

這篇文章主要講解了“python代碼的常見加密方式是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“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 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 批量

python代碼的常見加密方式是什么

1.2 是否可逆

  • pyc加密現成的反編譯工具,可以反編譯得到源代碼.

  • 使用uncompyle庫進行反編譯

可逆

測試:

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

python代碼的常見加密方式是什么

1.3是否影響模塊調用

不影響使用

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

python代碼的常見加密方式是什么

2.代碼混淆

在線工具 

python代碼的常見加密方式是什么

  • 1.1 降低代碼可讀性

  • 1.2 不影響模塊之間調用

3.生成exe可執行文件

使用py2exe

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

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'])

然后執行 python setup.py py2exe

python代碼的常見加密方式是什么

python代碼的常見加密方式是什么

  • 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 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

python代碼的常見加密方式是什么

在windos下生成.pyd文件

python代碼的常見加密方式是什么

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

python代碼的常見加密方式是什么

在linux下生成.so文件

python代碼的常見加密方式是什么

測試:

python代碼的常見加密方式是什么

  • 1.1 是否可逆:

不可逆

  • 1.2 是否影響模塊調用

不影響

5.附加運行輔助包文件

PyArmor

pip install pyarmor==6.8.1

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

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

python代碼的常見加密方式是什么

方式二:超級加密模式

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

pyarmor obfuscate --advanced 2 .\main1.py

python代碼的常見加密方式是什么

方式三: 虛擬加密模式

高級 + 虛擬

pyarmor obfuscate --advanced 3 .\main1.py

python代碼的常見加密方式是什么

超級 + 虛擬

pyarmor obfuscate --advanced 4 .\main1.py

python代碼的常見加密方式是什么

輔助文件和編譯文件

python代碼的常見加密方式是什么

幾種加密方式對比:

python代碼的常見加密方式是什么

感謝各位的閱讀,以上就是“python代碼的常見加密方式是什么”的內容了,經過本文的學習后,相信大家對python代碼的常見加密方式是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德昌县| 乐山市| 通州市| 哈巴河县| 崇义县| 交城县| 定襄县| 绵阳市| 无锡市| 林周县| 响水县| 凤山市| 友谊县| 江油市| 和田市| 迁安市| 昌乐县| 伊金霍洛旗| 泰安市| 深圳市| 黄冈市| 罗定市| 仲巴县| 竹北市| 澄城县| 荣昌县| 华安县| 明溪县| 崇礼县| 青铜峡市| 宁强县| 于都县| 兴和县| 遵义市| 嘉善县| 鄯善县| 青田县| 阿拉尔市| 钦州市| 博湖县| 同江市|