Symmetrische Schlüsselverschlüsselung: Fernet
Python verfügt über eine robuste Kryptografiebibliothek, die Fernet bietet, ein sicheres Best-Practice-Verschlüsselungsschema. Fernet verwendet AES-CBC-Verschlüsselung, HMAC-Signatur sowie Versions- und Zeitstempelinformationen, um Daten zu schützen. Es wird empfohlen, einen Schlüssel mit Fernet.generate_key() zu generieren.
from cryptography.fernet import Fernet
key = Fernet.generate_key()
message = 'John Doe'
token = Fernet(key).encrypt(message.encode())
decrypted_message = Fernet(key).decrypt(token).decode() # 'John Doe'
Alternativen:
Obscuring: Wenn nur Unklarheit ist erforderlich, Base64-Kodierung kann ausreichen. Verwenden Sie zur URL-Sicherheit urlsafe_b64encode().
import base64
obscured_message = base64.urlsafe_b64encode(b'Hello world!') # b'eNrzSM3...='
Nur Integrität: HMAC kann Datenintegritätssicherung ohne Verschlüsselung bereitstellen.
import hmac
import hashlib
key = secrets.token_bytes(32)
signature = hmac.new(key, b'Data', hashlib.sha256).digest()
AES-GCM-Verschlüsselung: AES-GCM bietet sowohl Verschlüsselung als auch Integrität, ohne Auffüllung.
import base64
key = secrets.token_bytes(32)
ciphertext = aes_gcm_encrypt(b'Data', key) # base64-encoded ciphertext and tag
decrypted_data = aes_gcm_decrypt(ciphertext, key) # b'Data'
Andere Ansätze:
AES CFB: Ähnlich wie CBC ohne Auffüllung.
import base64
key = secrets.token_bytes(32)
ciphertext = aes_cfb_encrypt(b'Data', key) # base64-encoded ciphertext and IV
decrypted_data = aes_cfb_decrypt(ciphertext, key) # b'Data'
AES ECB: Achtung: Unsicher! Nicht für reale Anwendungen empfohlen.
import base64
key = secrets.token_bytes(32)
ciphertext = aes_ecb_encrypt(b'Data', key) # base64-encoded ciphertext
decrypted_data = aes_ecb_decrypt(ciphertext, key) # b'Data'
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3