Heim >Backend-Entwicklung >Python-Tutorial >Verschlüsselte Python-Quellcodelösung PyArmor

Verschlüsselte Python-Quellcodelösung PyArmor

WBOY
WBOYnach vorne
2023-05-05 15:01:062447Durchsuche

加密Python源码方案 PyArmor

Es gibt viele Verschlüsselungsschemata für Python-Quellcode. Jetzt lernen wir, wie PyArmor Python verschlüsselt.

1. Einführung in PyArmor

  • PyArmor ist ein Befehlszeilentool, das zum Verschleiern von Python-Skripten und zum Binden der verschleierten Skripte verwendet wird eine feste Maschine oder für einen bestimmten Zeitraum, sodass das verschleierte Skript abläuft und nicht verwendet werden kann.
  • Sie können die Verwendung mit pyarmor -h überprüfen. Der folgende Abschnitt fängt nur einen Teil zur Erklärung ab:
(tt) PS C:test> pyarmor -h
usage: pyarmor [-h] [-v] [-q] [-d] [--home HOME] [--boot BOOT]...
optional arguments:
-h, --help show this help message and exit
-v, --versionshow program's version number and exit
-q, --silent Suppress all normal output
-d, --debugPrint exception traceback and debugging message
--home HOMEChange pyarmor home path
--boot BOOTChange boot platform
The most commonly used pyarmor commands are:
obfuscate (o) Obfuscate python scripts
licenses (l) Generate new licenses for obfuscated scripts
pack (p) Pack obfuscated scripts to one bundle
init (i) Create a project to manage obfuscated scripts
config (c) Update project settings
build (b)Obfuscate all the scripts in the project
info Show project information
checkCheck consistency of project
hdinfo Show all available hardware information
benchmarkRun benchmark test in current machine
register Make registration keyfile work
download Download platform-dependent dynamic libraries
runtimeGenerate runtime package separately
help Display online documentation
See "pyarmor <command> -h" for more information on a specific command.
More usage refer to https://pyarmor.readthedocs.io
#🎜🎜 #( 1) Hauptfunktionen von Pyarmor

  1. Verwenden Sie den Befehl obfuscate, um das Skript zu verschlüsseln.
  2. Verwenden Sie den Befehl licenses, um eine neue Lizenzdatei „license.lic“ für das verschlüsselte Skript zu generieren, wenn Sie den Nutzungszeitraum des verschlüsselten Skripts festlegen oder die Verwendung einschränken müssen Um das Skript auf einem bestimmten Computer auszuführen, müssen Sie eine neue Lizenzdatei generieren und das Skript mit der neuen Lizenzdatei verschlüsseln.
  3. kann das gesamte Python-Paket verschlüsseln.
  4. Sie können pyinstaller verwenden, um das Python-Projekt in ein unabhängig ausführbares Installationspaket zu packen.
  5. Sie können einige der bereitgestellten Lösungen auch verwenden, um die Sicherheit verschlüsselter Skripte weiter zu verbessern. Schauen Sie bei Bedarf einfach auf der offiziellen Website nach.
2. Anwendungsbeispiel

(1) Installation

pip install pyarmor -i https://pypi.douban.com/simple/
-i https://pypi.douban.com/simple/ 是使用国内的豆瓣源,提升安装速度,具体可参见我的其他文章。

(2) Allgemeine Verschlüsselung

# module1.py内容如下
def module1_func1():
print("I'm module1.py")
return 
# main.py内容如下
import module1
print("I'm main.py")
module1.module1_func1()。

Führen Sie den Befehl zum Verschlüsseln aus: pyarmor o main.py.

PyArmor verschlüsselt main.py und alle *.py-Dateien im selben Verzeichnis und generiert einen dist-Ordner, der alle zum Ausführen des Verschlüsselungsskripts erforderlichen Dateien enthält . Grundlegender Prozess:

  1. Erstellen Sie das Ausgabe-Unterverzeichnis dist.
  2. Erzeugen Sie das verschlüsselte Hauptskript main.py und speichern Sie es im Ausgabeverzeichnis dist.
  3. Alle anderen *.py-Dateien im selben Verzeichnis verschlüsseln und im Ausgabeverzeichnis dist speichern.
  4. Generieren Sie alle Hilfsdateien, die zum Ausführen des Verschlüsselungsskripts erforderlich sind, und speichern Sie sie im Ausgabeverzeichnis dist.

Überprüfung: Gehen Sie zum dist-Verzeichnis, python main.py.

Die verschlüsselte Datei sieht so aus:

from pytransform import pyarmor_runtime
pyarmor_runtime()
__pyarmor__(__name__, __file__, b'x50x59x41x52x4dx4fx52x00x00x03x08x00x55x0dx0dx0ax09x33xe0x02x00x00x00x00x01x00x00x00x40x00x00x00x63x01x00x00x00x00x00x18x26xa4x75x12x0cx32x8fxd9xa6xf8x0ax0bx17x1exc7xfex00x00x00x00x00x00xx22x0cxa0x75x0cx1ax13x8ax26xb4x02x46x1bx8cx5dxafxd0x81xc2x22x59xc0x1dxd2x83x99x01x09xb1x78x4cxdcx58x9bxdfx17xd9xe9x07xa4xa7xc6x51xdexaax20xbfx7cx43xbbx83x87xafx82x9ex65x2dxaexb9x5bx14xfcxf8x1dxc7x09xe5x65xa7x8dx5ax62x9dx78xa3x82x4cx53x17xc9x3ax15xa4xe7x66xdax3fxf2x9d', 2)
还会根据不同平台生成相关依赖:在pytransform文件夹下,例如windows生成相关.dll,linux生成.so等。

(3) Verschlüsselung mit Lizenzen

1.生成新的许可文件
pyarmor l -e 2022-09-09 test01
执行这条命令会生成一个带有效期的认证文件: 创建license.lic与license.lic.txt,保存在licenses/test01目录下
2.使用新生成的许可文件加密脚本
pyarmor o --with-license .licensestest01license.lic main.py
3.同样可以在dist目录下找到相关,此时如果过期了,则会提示:License is expired
# 🎜🎜 #(4) kann auch an eine feste Maschine gebunden werden

1.在该机器上运行命令获取硬件信息
pyarmor hdinfo
2.然后生成绑定的固定机器的许可文件
pyarmor l --bind-disk "100304PBN2081SF3NJ5T" --bind-mac "20:c1:d2:2f:a0:96" code-002
3.使用这个许可文件加密脚本,加密脚本就只能在指定机器上运行
pyarmor o --with-license licenses/code-002/license.lic main.py

Weitere Verwendungsmethoden finden Sie auf der offiziellen Website:

https://pyarmor.readthedocs.io /de/neueste/.

Das obige ist der detaillierte Inhalt vonVerschlüsselte Python-Quellcodelösung PyArmor. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen