Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Berhijrah dari Mcrypt ke OpenSSL untuk Penyulitan Blowfish?

Bagaimana untuk Berhijrah dari Mcrypt ke OpenSSL untuk Penyulitan Blowfish?

Linda Hamilton
Linda Hamiltonasal
2024-12-08 14:59:11387semak imbas

How to Migrate from Mcrypt to OpenSSL for Blowfish Encryption?

Berpindah daripada Mcrypt ke OpenSSL

Pelaksanaan semasa anda menggunakan Mcrypt untuk penyulitan, tetapi anda berhasrat untuk beralih kepada OpenSSL. Sifir blowfish Mcrypt dalam mod ECB mempamerkan perbezaan daripada OpenSSL, seperti memerlukan panjang IV 56 untuk Mcrypt dan 0 untuk OpenSSL.

Untuk memindahkan modul dengan lancar:

  • Fahami Padding Perbezaan:

    • Mcrypt menggunakan padding PKCS#5, manakala OpenSSL menggunakan PKCS#7. Pastikan padding yang konsisten semasa menyulitkan data.
  • Padding Manual:

    • Memandangkan OpenSSL menggunakan PKCS#7, anda mesti secara manual pad data sebelum menyulitkannya dengan Mcrypt. Ini melibatkan penambahan "1" pada data.
  • IV Permulaan:

    • Mod ECB tidak menggunakan IV. Oleh itu, apabila menggunakan ECB dengan OpenSSL, kod anda harus mengalih keluar pemula IV.
  • Pertimbangan Panjang Utama:

    • Mcrypt menyokong saiz kunci sehingga 56 bait, manakala OpenSSL tidak mempunyai had saiz kunci. Laraskan saiz kunci anda dengan sewajarnya.
  • Penyulitan Semula:

    • Untuk memastikan keserasian, pertimbangkan untuk menyulitkan semula sedia ada anda Data yang disulitkan mcrypt menggunakan OpenSSL. Ini menghapuskan sebarang percanggahan disebabkan oleh algoritma pelapik yang berbeza.

Kod Contoh:

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

// MCRYPT with PKCS#7 padding
$iv = str_repeat("", 8); // Dummy IV for ECB
$enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB, $iv);

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

// Decrypt with OpenSSL (requires re-encryption)
// $dec = openssl_decrypt($enc, 'bf-ecb', $key, true);
// echo var_dump($dec);

Atas ialah kandungan terperinci Bagaimana untuk Berhijrah dari Mcrypt ke OpenSSL untuk Penyulitan Blowfish?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn