Aktueller Standort: Startseite> Neueste Artikel> Eine vollständige Anleitung zur PHP-Datenverschlüsselung und -entschlüsselung: Symmetrische, asymmetrische und Hash-Implementierungen

Eine vollständige Anleitung zur PHP-Datenverschlüsselung und -entschlüsselung: Symmetrische, asymmetrische und Hash-Implementierungen

M66 2025-10-14

Einführung

Im modernen Internetumfeld ist Datensicherheit von größter Bedeutung. Um sensible Informationen zu schützen, müssen Entwickler häufig Daten ver- und entschlüsseln. Als beliebte serverseitige Sprache bietet PHP eine Fülle von Verschlüsselungsfunktionen und Bibliotheken und unterstützt mehrere Verschlüsselungsalgorithmen. In diesem Artikel wird erläutert, wie Sie mit PHP die Datenverschlüsselung und -entschlüsselung implementieren, und es wird ein praktischer Beispielcode mitgeliefert.

Verwenden Sie einen symmetrischen Verschlüsselungsalgorithmus

Der symmetrische Verschlüsselungsalgorithmus ist die am häufigsten verwendete Verschlüsselungsmethode, die auch als Shared-Key-Verschlüsselung bezeichnet wird. Für die Verschlüsselung und Entschlüsselung wird derselbe Schlüssel verwendet. PHP unterstützt eine Vielzahl symmetrischer Verschlüsselungsalgorithmen wie AES, DES, 3DES usw. Hier ist ein Beispiel für die Verwendung des AES-256-CBC-Algorithmus:

 Funktion encrypt($data, $key) {
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
    return base64_encode($iv . $encrypted);
}

Funktion entschlüsseln($data, $key) {
    $data = base64_decode($data);
    $iv = substr($data, 0, openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = substr($data, openssl_cipher_iv_length('aes-256-cbc'));
    return openssl_decrypt($encrypted, 'aes-256-cbc', $key, 0, $iv);
}

$key = 'secret_key';
$data = 'sensitive_data';

$encryptedData = encrypt($data, $key);
echo 'Verschlüsselte Daten: ' . $encryptedData . PHP_EOL;

$decryptedData = decrypt($encryptedData, $key);
echo 'Entschlüsselte Daten: ' . $decryptedData . PHP_EOL;

Codebeschreibung:

  • Die Verschlüsselungsfunktion verwendet openssl_encrypt zum Verschlüsseln von Daten und verwendet base64_encode, um sie in eine lesbare Zeichenfolge umzuwandeln.
  • Die Entschlüsselungsfunktion dekodiert zunächst Base64, extrahiert dann die IV und den verschlüsselten Inhalt und verwendet schließlich openssl_decrypt zum Entschlüsseln.
  • openssl_cipher_iv_length gibt die IV-Länge des angegebenen Verschlüsselungsalgorithmus zurück.

Verwenden Sie einen asymmetrischen Verschlüsselungsalgorithmus

Asymmetrische Verschlüsselungsalgorithmen verwenden zwei Schlüssel, einen öffentlichen Schlüssel und einen privaten Schlüssel. Der öffentliche Schlüssel wird zur Verschlüsselung und der private Schlüssel zur Entschlüsselung verwendet. PHP unterstützt Algorithmen wie RSA. Der Beispielcode lautet wie folgt:

 Funktion encrypt($data, $publicKey) {
    openssl_public_encrypt($data, $encrypted, $publicKey);
    return base64_encode($encrypted);
}

Funktion decrypt($encryptedData, $privateKey) {
    openssl_private_decrypt(base64_decode($encryptedData), $decrypted, $privateKey);
    return $decrypted;
}

$publicKey = openssl_pkey_get_public('file://path/to/public_key.pem');
$privateKey = openssl_pkey_get_private('file://path/to/private_key.pem');

$data = 'sensitive_data';

$encryptedData = encrypt($data, $publicKey);
echo 'Verschlüsselte Daten: ' . $encryptedData . PHP_EOL;

$decryptedData = decrypt($encryptedData, $privateKey);
echo 'Entschlüsselte Daten: ' . $decryptedData . PHP_EOL;

Codebeschreibung:

  • Die Verschlüsselungsfunktion verwendet openssl_public_encrypt zum Verschlüsseln von Daten und base64_encode zum Konvertieren in eine Zeichenfolge.
  • Die Entschlüsselungsfunktion stellt Binärdaten über base64_decode wieder her und entschlüsselt sie dann mit openssl_private_decrypt.

Verwenden Sie die Hash-Funktion

Die Hash-Funktion bildet Daten beliebiger Länge in einen Hashwert fester Länge ab und wird häufig zur Überprüfung der Datenintegrität und nicht zur Ver- und Entschlüsselung verwendet. PHP verwendet häufig Funktionen wie MD5, SHA1 und SHA256. Beispiel:

 $data = 'sensitive_data';

$hashedData = md5($data);
echo 'Hash-Daten: ' . $hashedData . PHP_EOL;

Codebeschreibung:

  • Die MD5-Funktion berechnet den MD5-Hashwert der angegebenen Daten.

abschließend

In diesem Artikel wird erläutert, wie PHP zum Implementieren der Datenverschlüsselung und -entschlüsselung verwendet wird, einschließlich symmetrischer Verschlüsselung, asymmetrischer Verschlüsselung und Hash-Funktionen, und es wird ein vollständiger Beispielcode bereitgestellt. Durch diese Methoden können Entwickler die Sicherheit sensibler Daten während der Übertragung und Speicherung wirksam schützen.