Rumah > pembangunan bahagian belakang > tutorial php > Cara Menukar Penyulitan Mcrypt kepada Penyulitan OpenSSL: Panduan Langkah demi Langkah

Cara Menukar Penyulitan Mcrypt kepada Penyulitan OpenSSL: Panduan Langkah demi Langkah

Patricia Arquette
Lepaskan: 2024-11-15 02:00:02
asal
730 orang telah melayarinya

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

Menukar Mcrypt kepada Penyulitan OpenSSL

Mcrypt, sebuah perpustakaan penyulitan warisan, telah menyaksikan persaraannya disebabkan kelemahan keselamatan dan kemunculan OpenSSL sebagai standard industri. Walaupun bertukar daripada Mcrypt kepada OpenSSL mungkin kelihatan menakutkan, ia boleh dipermudahkan dengan memahami perbezaan utama dan menggunakan strategi yang sesuai.

Cipher and Padding Disparity

Blowfish, sifir yang anda gunakan, memerlukan padding data untuk penyulitan. OpenSSL menggunakan padding PKCS#7, manakala Mcrypt menggunakan PKCS#5. PKCS#7 memerlukan panjang padding minimum 1, manakala PKCS#5 menerima 0. Perbezaan ini mempengaruhi hasil yang disulitkan yang diperoleh daripada setiap pustaka.

Penggunaan IV

Dalam mod ECB, yang mana anda' menggunakan semula, vektor permulaan (IV) tidak diperlukan. Walau bagaimanapun, ini tidak berlaku dalam mod penyulitan lain. Pastikan anda menetapkan panjang IV kepada 0 apabila menggunakan OpenSSL untuk mod ECB.

Penyulitan dan Penyahsulitan

Untuk menyahsulit data yang disulitkan dengan Mcrypt menggunakan OpenSSL, padding manual dengan PKCS#7 diperlukan sebelum penyulitan . Ini memastikan keserasian antara kedua-dua perpustakaan.

Kod Contoh

Kod yang disediakan menunjukkan perbezaan utama dan teknik pelapik yang betul:

$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);
Salin selepas log masuk

Kod ini menunjukkan penyulitan dan penyahsulitan yang berjaya menggunakan kedua-dua Mcrypt dan OpenSSL, menggunakan padding PKCS#7 untuk keserasian.

Atas ialah kandungan terperinci Cara Menukar Penyulitan Mcrypt kepada Penyulitan OpenSSL: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan