Heim >Backend-Entwicklung >PHP-Tutorial >Was sind die sicheren Alternativen zur veralteten mcrypt-Erweiterung für die Passwortverschlüsselung und -entschlüsselung?

Was sind die sicheren Alternativen zur veralteten mcrypt-Erweiterung für die Passwortverschlüsselung und -entschlüsselung?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-11 12:40:18225Durchsuche

What are the Secure Alternatives to the Deprecated mcrypt Extension for Password Encryption and Decryption?

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:

  • Libsodium: Eine PHP-Erweiterung, die sichere Ver- und Entschlüsselung bietet.
  • defuse/php-encryption: Reiner PHP-Code Bibliothek, die sichere Verschlüsselungs- und Entschlüsselungsfunktionen bietet.
  • OpenSSL: Ein weit verbreitetes Verfügbare Verschlüsselungsbibliothek, die mit PHP kompiliert werden kann, wenn sie nicht bereits auf Ihrem Server installiert ist.

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!

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