Mit der Einführung von PHP 7.2 wird die beliebte Mcrypt-Erweiterung auslaufen. Als Entwickler ist es wichtig, sich auf diese Änderung vorzubereiten und die Einführung der sichereren Openssl-Alternative in Betracht zu ziehen.
Dieser Artikel konzentriert sich auf eine häufige Herausforderung, mit der Entwickler während des Übergangs konfrontiert sind: die Konvertierung von Code von Mcrypt nach Openssl unter Beibehaltung von AES 256 CBC und IVs.
Berücksichtigen Sie den folgenden Mcrypt-Code:
function encrypt($masterPassword, $data) { // Mcrypt AES 256 CBC operations $key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize); $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_CBC, $iv); return base64_encode($iv . $encrypted); } function decrypt($masterPassword, $base64) { // Mcrypt AES 256 CBC operations $key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize); $data = base64_decode($base64); $iv = substr($data, 0, $ivSize); $encrypted = substr($data, $ivSize, strlen($data)); $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CBC, $iv); return trim($decrypted); }
Um dies zu konvertieren Code in Openssl umwandeln, sollten Sie sich eines entscheidenden Unterschieds bewusst sein: Mcrypts Rijndael-256 ist nicht dasselbe wie AES-256. OpenSSL unterstützt AES-256, also Rijndael-128 mit einem 256-Bit-Schlüssel.
Daher ist eine direkte Codekonvertierung leider nicht möglich. Sie müssen alle Ihre Daten mit geeigneten AES-256-Vorgängen neu verschlüsseln.
Darüber hinaus mangelt es dem aktuellen Mcrypt-Verschlüsselungsschema an Authentifizierung, ordnungsgemäßer Auffüllung und Byte-Sicherheit. Es wird dringend empfohlen, eine robustere Verschlüsselungsbibliothek wie defuse/php-encryption zu verwenden, um die Sicherheit zu verbessern.
Wenn Sie die Unterschiede zwischen Mcrypt und Openssl verstehen und die Mängel des bestehenden Verschlüsselungsschemas beheben, können Sie sich effektiv darauf vorbereiten Entfernen Sie Mcrypt in PHP 7.2 und bewahren Sie die Integrität und Sicherheit Ihrer verschlüsselten Daten.
Das obige ist der detaillierte Inhalt vonWie migriere ich meinen PHP-Mcrypt-Verschlüsselungscode zu OpenSSL in PHP 7.2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!