Heim >Backend-Entwicklung >PHP-Tutorial >Was sind die sicheren Alternativen zur veralteten mcrypt-Erweiterung für die Passwortverschlüsselung und -entschlüsselung?
Alternative zur veralteten mcrypt-Erweiterung für die Passwortverschlüsselung
Die mcrypt-Erweiterung, die zuvor für die Passwortverschlüsselung verwendet wurde, ist veraltet und wird entfernt komplett in PHP 7.2. Dies wirft Bedenken hinsichtlich der Suche nach einer geeigneten Alternative für eine sichere Passwortverschlüsselung auf.
Empfohlener Ansatz: Passwort-Hashing
Als Best Practice wird dringend empfohlen, Passwörter zu hashen statt verschlüsseln Sie sie. Hashing wandelt Passwörter in nicht umkehrbare Werte um, sodass Angreifer das ursprüngliche Passwort nicht wiederherstellen können, selbst wenn sie Zugriff auf Ihre Datenbank oder Dateien erhalten.
Alternative Verschlüsselungsmethoden
Wenn Sie jedoch eine Verschlüsselung Ihrer Passwörter benötigen und die Möglichkeit benötigen, diese zu entschlüsseln, stehen Ihnen die folgenden Optionen zur Verfügung empfohlen:
Codebeispiel
Um eine dieser Alternativen zu verwenden, können Sie folgen eine ähnliche Struktur wie Ihr ursprüngliches Mcrypt Code:
// Generate a secure random initialization vector $iv = random_bytes(16); // Encrypt the password using AES-256 in CBC mode // Note: Replace key with a securely generated encryption key $encrypted = openssl_encrypt($string, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); // Store the encrypted password and initialization vector for later decryption
Entschlüsselung
Die Entschlüsselung kann mit derselben Bibliothek und demselben Schlüssel durchgeführt werden:
// Decrypt the encrypted password using AES-256 in CBC mode $decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
Das obige ist der detaillierte Inhalt vonWas sind die sicheren Alternativen zur veralteten mcrypt-Erweiterung für die Passwortverschlüsselung und -entschlüsselung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!