Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich passwortgeschützte Zeichenfolgen in Python sicher verschlüsseln?

Wie kann ich passwortgeschützte Zeichenfolgen in Python sicher verschlüsseln?

Susan Sarandon
Susan SarandonOriginal
2024-10-22 22:27:02249Durchsuche

How Can I Securely Encrypt Password-Protected Strings in Python?

Sichere Verschlüsselung für passwortgeschützte Zeichenfolgen

Problem:

Python fehlt eine integrierte Ein Mechanismus zum Verschlüsseln und Entschlüsseln von Zeichenfolgen mithilfe eines Kennworts. Dies kann bei Szenarien, die eine Datenverschleierung ohne strenge Sicherheitsmaßnahmen erfordern, problematisch sein.

Lösung:

Kryptografiebibliotheken wie Cryptography bieten sichere Verschlüsselungsschemata.

Verwendung von Fernet für die Verschlüsselung mit symmetrischen Schlüsseln

Fernet ist ein Best-Practice-Rezept für die Verwendung von Kryptographie. Es kombiniert AES-CBC-Verschlüsselung mit einer HMAC-Signatur, einem Zeitstempel und Versionsinformationen, um Daten zu schützen.

<code class="python">from cryptography.fernet import Fernet

# Generate a random 32-byte key (securely store it)
key = Fernet.generate_key()

# Encrypt and decrypt messages using the key
def encrypt(message, key):
    return Fernet(key).encrypt(message.encode())

def decrypt(token, key):
    return Fernet(key).decrypt(token).decode()</code>

Alternative Ansätze:

Datenverschleierung:

Wenn die Datenintegrität kein Problem darstellt, kann die Base64-Kodierung zur Verschleierung verwendet werden.

<code class="python">import base64

def obscure(data):
    return base64.urlsafe_b64encode(data)

def unobscure(obscured):
    return base64.urlsafe_b64decode(obscured)</code>

Datenintegrität:

HMAC-Signatur kann die Datenintegrität sicherstellen, indem eine Signatur mithilfe eines Schlüssel- und Hashing-Algorithmus berechnet wird.

<code class="python">import hmac
import hashlib

def sign(data, key, algorithm=hashlib.sha256):
    return hmac.new(key, data, algorithm).digest()

def verify(signature, data, key, algorithm=hashlib.sha256):
    return hmac.compare_digest(expected, signature)</code>

Verwendung von AES-GCM für Verschlüsselung mit Integrität

Ähnlich wie Fernet, AES- GCM bietet Verschlüsselung und Integrität mithilfe der Blockverschlüsselung im Galois-/Counter-Modus.

<code class="python">from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend

def aes_gcm_encrypt(message, key):
    # ... (Implementation omitted for brevity)

def aes_gcm_decrypt(token, key):
    # ... (Implementation omitted for brevity)</code>

Das obige ist der detaillierte Inhalt vonWie kann ich passwortgeschützte Zeichenfolgen in Python sicher verschlüsseln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn