0Pricing
Cryptology Academy · Lektion

Überblick über die Python-cryptography-Bibliothek

Richten Sie hazmat und High-Level-Primitiven ein und verstehen Sie die Bibliotheksstruktur.

Überblick über die Python-cryptography-Bibliothek ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum die cryptography-Bibliothek verwenden?

Die Python-Bibliothek cryptography von PyCA bietet sowohl eine übergeordnete Fernet-Schnittstelle als auch hardwarenahe hazmat-Primitive. Sie kapselt OpenSSL und ist der Community-Standard für produktive Kryptografie in Python.

Installation und Struktur

Installation: pip install cryptography. Zwei Ebenen: cryptography.fernet (sichere, bewusst eingeschränkte symmetrische Verschlüsselung) und cryptography.hazmat.primitives (AES, RSA, EC, Hashfunktionen, HMAC – mit Vorsicht verwenden).

Fernet: Sichere symmetrische Verschlüsselung

Fernet verwendet AES-128-CBC + HMAC-SHA256 mit einem Zeitstempel. Die Generierung des IV, das Padding und der MAC werden automatisch verarbeitet. Ideal zum Verschlüsseln von Konfigurationswerten, Token oder kleinen Datenblöcken.

from cryptography.fernet import Fernet

# Generate a URL-safe base64-encoded 32-byte key
key = Fernet.generate_key()
f = Fernet(key)

token = f.encrypt(b"my secret data")
print("Encrypted:", token[:40], "...")

plain = f.decrypt(token)
print("Decrypted:", plain)

Hazmat-Primitives: Hashfunktionen

Die Hazmat-Ebene bietet SHA-2, SHA-3, BLAKE2 und weitere Hashfunktionen:

from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.backends import default_backend

digest = hashes.Hash(hashes.SHA256(), backend=default_backend())
digest.update(b"Hello, ")
digest.update(b"world!")
result = digest.finalize()
print("SHA-256:", result.hex())

Hazmat-Primitives: HMAC

HMAC zur Nachrichtenauthentifizierung:

from cryptography.hazmat.primitives import hmac, hashes
import os

key = os.urandom(32)
h = hmac.HMAC(key, hashes.SHA256())
h.update(b"authenticated message")
signature = h.finalize()
print("HMAC-SHA256:", signature.hex())

# Verify
h2 = hmac.HMAC(key, hashes.SHA256())
h2.update(b"authenticated message")
h2.verify(signature)  # raises if invalid

Schlüsselserialisierung

Serialisieren Sie Schlüssel für die Speicherung oder Übertragung in PEM/DER:

from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization

private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
pem = private_key.private_bytes(
    encoding=serialization.Encoding.PEM,
    format=serialization.PrivateFormat.PKCS8,
    encryption_algorithm=serialization.BestAvailableEncryption(b"passphrase")
)
print(pem[:60])

Schlüssel aus PEM laden

Laden Sie einen PEM-Schlüssel von der Festplatte:

from cryptography.hazmat.primitives.serialization import load_pem_private_key

with open("private_key.pem", "rb") as f:
    pem_data = f.read()

key = load_pem_private_key(pem_data, password=b"passphrase")
print("Key loaded, size:", key.key_size, "bits")

Verarbeitung von X.509-Zertifikaten

Parsen und untersuchen Sie TLS-Zertifikate:

from cryptography import x509
import datetime

with open("cert.pem", "rb") as f:
    cert = x509.load_pem_x509_certificate(f.read())

print("Subject:", cert.subject)
print("Issuer:", cert.issuer)
print("Not valid after:", cert.not_valid_after_utc)
print("Serial:", cert.serial_number)

Generierung zufälliger Bytes

Verwenden Sie für kryptografische Zufallswerte immer os.urandom oder secrets:

import os, secrets

# Cryptographically secure 32-byte key
key = os.urandom(32)
print("Random key:", key.hex())

# secrets module: URL-safe token
token = secrets.token_urlsafe(32)
print("URL-safe token:", token)

Stolperfallen bei Hazmat vermeiden

Die Hazmat-API heißt nicht ohne Grund "Hazardous Materials". Häufige Fehler sind die Wiederverwendung von Nonces, die Verwendung des ECB-Modus, das Überspringen von Authentifizierungs-Tags und der Vergleich von MACs mit ==. Verwenden Sie nach Möglichkeit übergeordnete APIs.

Wissenscheck

Was bietet die Fernet-Verschlüsselung, das reines AES-CBC nicht bietet?

Zusammenfassung der Lektion

Die cryptography-Bibliothek besteht aus zwei Ebenen: dem sicheren Fernet und der flexiblen Hazmat-Ebene. Verwenden Sie Fernet für symmetrische Verschlüsselung und Hazmat für AES-GCM, RSA, ECDSA und die Verarbeitung von Zertifikaten. Verwenden Sie für Schlüssel immer os.urandom. Vermeiden Sie die Stolperfallen der Hazmat-Ebene – bevorzugen Sie authentifizierte Modi.

Häufig gestellte Fragen

Ist die Lektion „Überblick über die Python-cryptography-Bibliothek“ kostenlos?

Ja — der vollständige Text von „Überblick über die Python-cryptography-Bibliothek“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Überblick über die Python-cryptography-Bibliothek“?

Richten Sie hazmat und High-Level-Primitiven ein und verstehen Sie die Bibliotheksstruktur. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Überblick über die Python-cryptography-Bibliothek“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Überblick über die Python-cryptography-Bibliothek
  2. AES-GCM in Python ver- und entschlüsseln
  3. RSA- und ECDSA-Schlüsselpaare in Python
  4. Häufige Python-Krypto-Fallen und sichere Muster
← Zurück zu Cryptology Academy