Heim > Backend-Entwicklung > PHP-Tutorial > So konvertieren Sie die Mcrypt-Verschlüsselung in die OpenSSL-Verschlüsselung: Eine Schritt-für-Schritt-Anleitung

So konvertieren Sie die Mcrypt-Verschlüsselung in die OpenSSL-Verschlüsselung: Eine Schritt-für-Schritt-Anleitung

Patricia Arquette
Freigeben: 2024-11-15 02:00:02
Original
730 Leute haben es durchsucht

How to Convert Mcrypt Encryption to OpenSSL Encryption: A Step-by-Step Guide

Konvertieren von Mcrypt in OpenSSL-Verschlüsselung

Mcrypt, eine alte Verschlüsselungsbibliothek, wurde aufgrund von Sicherheitslücken und dem Aufkommen von OpenSSL als Industriestandard eingestellt. Auch wenn der Wechsel von Mcrypt zu OpenSSL entmutigend erscheinen mag, kann er vereinfacht werden, indem man die wichtigsten Unterschiede versteht und geeignete Strategien anwendet.

Chiffre- und Padding-Disparität

Blowfish benötigt die von Ihnen verwendete Verschlüsselung Datenauffüllung zur Verschlüsselung. OpenSSL verwendet PKCS#7-Padding, während Mcrypt PKCS#5 verwendet. PKCS#7 erfordert eine Mindestfülllänge von 1, während PKCS#5 0 akzeptiert. Dieser Unterschied wirkt sich auf die verschlüsselten Ergebnisse aus, die von jeder Bibliothek erhalten werden.

IV-Verwendung

Im ECB-Modus, den Sie Bei erneuter Verwendung ist kein Initialisierungsvektor (IV) erforderlich. Bei anderen Verschlüsselungsmodi ist dies jedoch nicht der Fall. Stellen Sie sicher, dass Sie die IV-Länge auf 0 setzen, wenn Sie OpenSSL für den ECB-Modus verwenden.

Verschlüsselung und Entschlüsselung

Um mit Mcrypt verschlüsselte Daten mit OpenSSL zu entschlüsseln, ist vor der Verschlüsselung eine manuelle Auffüllung mit PKCS#7 erforderlich . Dadurch wird die Kompatibilität zwischen den beiden Bibliotheken sichergestellt.

Beispielcode

Der bereitgestellte Code demonstriert die wichtigsten Unterschiede und die richtigen Fülltechniken:

$key = "anotherpassword1";
$str = "does it work 12";

// Mcrypt padding
$enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB);

// OpenSSL padding
$enc = openssl_encrypt($str, 'bf-ecb', $key, true);

// Decrypt using both methods
$dec_mcrypt = mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $enc, MCRYPT_MODE_ECB);
$dec_openssl = openssl_decrypt($enc, 'bf-ecb', $key, true);

echo bin2hex($enc) . PHP_EOL;
var_dump($dec_mcrypt);
echo PHP_EOL;
var_dump($dec_openssl);
Nach dem Login kopieren

Dieser Code demonstriert eine erfolgreiche Ver- und Entschlüsselung Verwendung von Mcrypt und OpenSSL unter Anwendung von PKCS#7-Padding aus Kompatibilitätsgründen.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie die Mcrypt-Verschlüsselung in die OpenSSL-Verschlüsselung: Eine Schritt-für-Schritt-Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage