Latar Belakang:
Aplikasi PHP anda pada masa ini menggunakan Mcrypt untuk penyulitan data dengan sifir Blowfish dan mod ECB. Walau bagaimanapun, anda menghadapi cabaran untuk berhijrah ke OpenSSL untuk penyulitan.
Perbezaan Utama:
Penyelesaian:
Untuk berhijrah dengan lancar tanpa pengekodan semula yang ketara, ikut langkah berikut:
Buat Semula Data Disulitkan: Pad data secara manual dengan PKCS#7 sebelum menyulitkannya dengan Mcrypt. Contoh kod disediakan di bawah:
$key = "anotherpassword1"; $str = "does it work 12"; $enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB);
Gunakan OpenSSL untuk Penyahsulitan: Selepas mencipta semula data yang disulitkan, gunakan OpenSSL untuk menyahsulitnya menggunakan sifir yang betul dan mod:
$key = "anotherpassword1"; $enc = "0e93dce9a6a88e343fe5f90d1307684c"; $dec = openssl_decrypt($enc, 'bf-ecb', $key, true); echo $dec;
Nota: Anda menyebut bahawa panjang IV yang berbeza diperlukan untuk Mcrypt (56) dan OpenSSL (0). Walau bagaimanapun, mod ECB tidak menggunakan IV.
Dengan mengikuti langkah ini, anda boleh berhijrah daripada Mcrypt ke OpenSSL tanpa memerlukan pengubahsuaian kod yang meluas, memastikan keserasian dengan data anda yang disulitkan yang sedia ada.
Atas ialah kandungan terperinci Bagaimana untuk Berhijrah dari Mcrypt ke OpenSSL tanpa Perubahan Kod Ketara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!