4. PSA Python Module Tutorial: Key Modules & Code Examples¶
Dieses Dokument beschreibt die Kern-Module des Projekts mit Fokus auf deren praktische Anwendung.
4.1. 1. Cryptography (Fernet) - Third-Party¶
Das Modul cryptography stellt mit Fernet eine sichere, symmetrische Verschlüsselung bereit.
Typische Verwendung:
from cryptography.fernet import Fernet
# 1. Schlüssel erstellen und laden
key = Fernet.generate_key()
cipher_suite = Fernet(key)
# 2. Daten verschlüsseln (muss vom Typ 'bytes' sein)
message = "Geheimdaten 123".encode('utf-8')
cipher_text = cipher_suite.encrypt(message)
# 3. Daten entschlüsseln
plain_text = cipher_suite.decrypt(cipher_text).decode('utf-8')
print(f"Original: {plain_text}")
Im Projekt: Sichert die JSON-Pakete vor dem Versenden über das Netzwerk ab.
4.2. 2. Asyncio - Standard Library¶
Ermöglicht asynchrone Programmierung, um I/O-Wartezeiten (wie Netzwerk-Timeouts) zu überbrücken.
Typische Verwendung:
import asyncio
async def check_service(name, delay):
await asyncio.sleep(delay)
print(f"Service {name} ist bereit.")
async def main():
# Startet mehrere Aufgaben gleichzeitig
await asyncio.gather(
check_service("Scanner", 1),
check_service("Logger", 0.5)
)
asyncio.run(main())
Im Projekt: Erlaubt dem AsyncPortScanner hunderte Ports gleichzeitig zu prüfen, statt nacheinander zu warten.
4.3. 3. Socket - Standard Library¶
Die Basis für jegliche Netzwerkkommunikation über TCP/IP.
Typische Verwendung (Client-Seite):
import socket
# Verbindung aufbauen (AF_INET = IPv4, SOCK_STREAM = TCP)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(("127.0.0.1", 6543))
s.sendall(b"Hallo Server")
data = s.recv(1024)
print(f"Empfangen: {data.decode()}")
Im Projekt: Bildet die “Leitung”, durch die unsere verschlüsselten JSON-Daten fließen.
4.4. 4. Argparse - Standard Library¶
Modul zum Erstellen von professionellen Kommandozeilen-Schnittstellen (CLI).
Typische Verwendung:
import argparse
parser = argparse.ArgumentParser(description="Tool Beschreibung")
parser.add_argument("--ip", default="127.0.0.1", help="Ziel-IP Adresse")
parser.add_argument("--port", type=int, required=True, help="Ziel-Port")
args = parser.parse_args()
print(f"Verbinde zu {args.ip} auf Port {args.port}")
Im Projekt: Ermöglicht die Steuerung von Host, Port und Verschlüsselungs-Modus beim Starten der Skripte.
4.5. Modul-Klassifizierung¶
Modul |
Typ |
Installationspfad (Linux/Venv) |
|---|---|---|
cryptography |
Third-Party |
|
asyncio |
Standard |
|
socket |
Standard |
Build-in (C-Erweiterung/Standard Lib) |
argparse |
Standard |
|