Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man Strings mithilfe von Passwörtern in Python sicher verschlüsseln und verschleiern?

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

DDD
DDDOriginal
2024-10-22 21:47:30492Durchsuche

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>

Verschlüsselung:

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

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

Entschlüsselung:

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

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

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>

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>

Beispielverwendung:

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

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

Ü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>

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>

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!

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