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.
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:
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 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:
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.