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

Susan Sarandon
Freigeben: 2024-10-22 22:27:02
Original
149 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!