Heim > Backend-Entwicklung > PHP-Tutorial > Wie migriere ich von Mcrypt zu OpenSSL für die Datenverschlüsselung in PHP?

Wie migriere ich von Mcrypt zu OpenSSL für die Datenverschlüsselung in PHP?

Susan Sarandon
Freigeben: 2024-11-15 16:52:03
Original
480 Leute haben es durchsucht

How to Migrate from Mcrypt to OpenSSL for Data Encryption in PHP?

Implementierung von OpenSSL anstelle von Mcrypt zur Verschlüsselung

In der PHP-Anwendung, die derzeit Mcrypt zur Datenverschlüsselung verwendet, besteht die Notwendigkeit eines Ersatzes Mcrypt mit OpenSSL. Die ursprüngliche Implementierung verwendete Blowfish-Verschlüsselung im ECB-Modus, aber das Ersetzen von Mcrypt durch OpenSSL stellt aufgrund unterschiedlicher Verschlüsselungsergebnisse und erforderlicher IV-Längen eine Herausforderung dar.

Die Diskrepanzen verstehen

Beides Die Verschlüsselungsfunktionen mcrypt_encrypt und openssl_encrypt führen zu unterschiedlichen Ergebnissen. Darüber hinaus erfordert mcrypt eine 56-Byte-IV für blowfish-ecb, während Openssl eine IV mit der Länge Null verwendet. Diese Unterschiede sind auf die unterschiedlichen Auffüllalgorithmen zurückzuführen, die von Mcrypt (PKCS#5) und OpenSSL (PKCS#7) verwendet werden.

Behebung von Verschlüsselungsunterschieden

Um die Verschlüsselungsunterschiede zu mildern Vor der Verschlüsselung mit mcrypt ist ein manuelles Auffüllen der Daten mit PKCS#7-Auffüllen erforderlich. Dies stellt die Kompatibilität mit dem von OpenSSL verwendeten Auffüllalgorithmus sicher. Das folgende Beispiel veranschaulicht diesen Ansatz:

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

$enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB);
$dec = mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $enc, MCRYPT_MODE_ECB);
echo(bin2hex($enc).PHP_EOL); // Encrypted data
var_dump($dec); // Decrypted data

$enc = openssl_encrypt($str, 'bf-ecb', $key, true);
$dec = openssl_decrypt($enc, 'bf-ecb', $key, true);
echo(bin2hex($enc).PHP_EOL); // Encrypted data
var_dump($dec); // Decrypted data
Nach dem Login kopieren

Migrationsüberlegungen

Da das Entschlüsseln von mit Mcrypt verschlüsselten Daten mithilfe von OpenSSL unpraktisch ist, besteht die einzige Lösung darin, die Daten erneut zu verschlüsseln Daten. Dies stellt einen erheblichen Migrationsaufwand dar, da alle zuvor verschlüsselten Daten erneut mit OpenSSL verschlüsselt werden müssen.

Das obige ist der detaillierte Inhalt vonWie migriere ich von Mcrypt zu OpenSSL für die Datenverschlüsselung in PHP?. 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