Wie kann man Strings mithilfe von Passwörtern in Python sicher verschlüsseln und verschleiern?

DDD
Freigeben: 2024-10-22 21:47:30
Original
485 Leute haben es durchsucht

How to Safely Encrypt and Obscure Strings Using Passwords in Python?

Zeichenfolgen mit einem Passwort in Python verschlüsseln

Haftungsausschluss:

Verschlüsselung ist ein entscheidender Aspekt der Datensicherheit, und zwar sollten mit größter Sorgfalt behandelt werden. Eine falsche Implementierung der Verschlüsselung kann Ihre Daten anfällig für Angriffe machen. Erwägen Sie die Verwendung etablierter Bibliotheken und befolgen Sie Best Practices für eine sichere Verschlüsselung.

Verwendung einer Kryptografiebibliothek: Fernet

Die Kryptografiebibliothek von Python bietet eine benutzerfreundliche und sichere Lösung zum Verschlüsseln von Zeichenfolgen mithilfe eines Kennworts. Fernet ist ein integriertes Rezept in der Kryptographie, das den Verschlüsselungsprozess vereinfacht.

Generieren eines Schlüssels:

Um Fernet verwenden zu können, müssen Sie zunächst einen geheimen Schlüssel generieren. Es ist wichtig, diesen Schlüssel geheim zu halten.

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

key = Fernet.generate_key()  # Store this securely</code>
Nach dem Login kopieren

Verschlüsselung:

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

def encrypt(message: bytes, key: bytes) -> bytes:
    return Fernet(key).encrypt(message)</code>
Nach dem Login kopieren

Entschlüsselung:

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

def decrypt(token: bytes, key: bytes) -> bytes:
    return Fernet(key).decrypt(token)</code>
Nach dem Login kopieren

Beispielverwendung:

<code class="python">message = "John Doe"
encrypted_token = encrypt(message.encode(), key)
decrypted_message = decrypt(encrypted_token, key).decode()

print(decrypted_message)  # Output: John Doe</code>
Nach dem Login kopieren

Daten verschleiern

Wenn Sie Daten verschleiern statt verschlüsseln müssen, können Sie die Base64-Kodierung verwenden:

<code class="python">import base64

def obscure(data: bytes) -> bytes:
    return base64.b64encode(data)

def unobscure(obscured: bytes) -> bytes:
    return base64.b64decode(obscured)</code>
Nach dem Login kopieren

Beispielverwendung:

<code class="python">data = b"Hello world!"
obscured = obscure(data)
unobscured = unobscure(obscured)

print(unobscured.decode())  # Output: Hello world!</code>
Nach dem Login kopieren

Überprüfung der Datenintegrität

Wenn Sie die Datenintegrität ohne Verschlüsselung sicherstellen müssen, können Sie HMAC-Signaturen verwenden:

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

def sign(data: bytes, key: bytes) -> bytes:
    return hmac.new(key, data, hashlib.sha256).digest()

def verify(signature: bytes, data: bytes, key: bytes) -> bool:
    return hmac.compare_digest(hmac.new(key, data, hashlib.sha256).digest(), signature)</code>
Nach dem Login kopieren

Beispielverwendung:

<code class="python">data = b"Hello world!"
key = secrets.token_bytes(32)
signature = sign(data, key)

if verify(signature, data, key):
    print("Signature is valid")
else:
    print("Signature is invalid")</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man Strings mithilfe von Passwörtern in Python sicher verschlüsseln und verschleiern?. 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
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!