Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menghijrahkan Kod Penyulitan Mcrypt PHP Saya ke OpenSSL dalam PHP 7.2?

Bagaimana untuk Menghijrahkan Kod Penyulitan Mcrypt PHP Saya ke OpenSSL dalam PHP 7.2?

Barbara Streisand
Lepaskan: 2024-12-06 20:01:12
asal
805 orang telah melayarinya

How to Migrate My PHP Mcrypt Encryption Code to OpenSSL in PHP 7.2?

Bersedia untuk Mengalih Keluar Mcrypt dalam PHP 7.2: Penukaran Kod daripada Mcrypt kepada Openssl

Dengan kemunculan PHP 7.2, sambungan Mcrypt yang disayangi akan ditamatkan secara berperingkat. Sebagai pembangun, adalah penting untuk bersedia untuk perubahan ini dan mempertimbangkan untuk menggunakan alternatif Openssl yang lebih selamat.

Artikel ini memfokuskan pada cabaran biasa yang dihadapi oleh pembangun semasa peralihan: menukar kod daripada Mcrypt kepada Openssl sambil mengekalkan AES 256 CBC dan IV.

Pertimbangkan Mcrypt berikut kod:

function encrypt($masterPassword, $data) {
    // Mcrypt AES 256 CBC operations
    $key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize);
    $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_CBC, $iv);
    return base64_encode($iv . $encrypted);
}

function decrypt($masterPassword, $base64) {
    // Mcrypt AES 256 CBC operations
    $key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize);
    $data = base64_decode($base64);
    $iv = substr($data, 0, $ivSize);
    $encrypted = substr($data, $ivSize, strlen($data));
    $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CBC, $iv);
    return trim($decrypted);
}
Salin selepas log masuk

Untuk menukar kod ini kepada Openssl, anda harus sedar tentang perbezaan penting: Mcrypt's Rijndael-256 tidak sama dengan AES-256. OpenSSL menyokong AES-256, iaitu Rijndael-128 dengan kunci 256-bit.

Oleh itu, malangnya, penukaran kod langsung tidak boleh dilakukan. Anda perlu menyulitkan semula semua data anda menggunakan operasi AES-256 yang betul.

Tambahan pula, skim penyulitan Mcrypt semasa tidak mempunyai pengesahan, pelapik yang betul dan keselamatan bait. Adalah amat disyorkan untuk menggunakan perpustakaan penyulitan yang lebih mantap seperti defuse/php-encryption untuk keselamatan yang dipertingkatkan.

Dengan memahami perbezaan antara Mcrypt dan Openssl dan menangani kelemahan skim penyulitan sedia ada, anda boleh membuat persediaan dengan berkesan untuk penyingkiran Mcrypt dalam PHP 7.2 dan mengekalkan integriti dan keselamatan data anda yang disulitkan.

Atas ialah kandungan terperinci Bagaimana untuk Menghijrahkan Kod Penyulitan Mcrypt PHP Saya ke OpenSSL dalam PHP 7.2?. 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