Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Memindahkan Penyulitan PHP Saya dengan Selamat dari Mcrypt ke OpenSSL?

Bagaimanakah Saya Boleh Memindahkan Penyulitan PHP Saya dengan Selamat dari Mcrypt ke OpenSSL?

Susan Sarandon
Susan Sarandonasal
2024-12-03 16:30:14214semak imbas

How Can I Safely Migrate My PHP Encryption from Mcrypt to OpenSSL?

Mengelakkan Sakit Kepala Penyulitan: Peralihan daripada Mcrypt kepada OpenSSL

Mcrypt, modul PHP lama, akan menghentikan sokongan dalam PHP 7.2. Penggantian yang disyorkan, OpenSSL, mempunyai nuansa pelaksanaan yang sedikit berbeza. Artikel ini meneroka cara untuk memindahkan kod secara berkesan daripada Mcrypt ke OpenSSL sambil mengekalkan sifat penyulitan kritikal.

Menukar Kod Mcrypt kepada OpenSSL

Secara khusus, mari pertimbangkan kod Mcrypt berikut yang menggunakan AES 256 CBC penyulitan:

function encrypt($masterPassword, $data) {
    // ... (Omitted for brevity)
    return base64_encode($iv . $encrypted);
}

function decrypt($masterPassword, $base64) {
    // ... (Omitted for brevity)
    return trim($decrypted);
}

Adalah penting untuk ambil perhatian bahawa Rijndael-256 (digunakan oleh Mcrypt) tidak sama dengan AES-256 (digunakan oleh OpenSSL). OpenSSL tidak mempunyai sokongan Rijndael-256.

Penyulitan Semula Diperlukan

Oleh itu, penukaran langsung tidak dapat dilaksanakan. Sebaliknya, semua data yang disulitkan mesti disulitkan semula menggunakan AES-256 di bawah OpenSSL.

Mengatasi Isu Tambahan

Selain itu, kod asal menunjukkan beberapa kebimbangan penyulitan yang ketara:

  • Ketiadaan pengesahan (mudah ditambah menggunakan HMACs)
  • Pelapik yang tidak betul (Pelapik PKCS#5 disyorkan)
  • Operasi bukan bait-selamat (cth., mb_substr())

OpenSSL memudahkan pelapik, tetapi perpustakaan penyulitan khusus seperti defuse/php-encryption boleh meningkatkan keselamatan dan kemudahan walaupun selanjutnya.

Kesimpulan

Peralihan daripada Mcrypt kepada OpenSSL memerlukan pertimbangan yang teliti terhadap kehalusan penyulitan ini. Dengan menyulitkan semula data dan menangani kelemahan tambahan, pembangun boleh terus melindungi aplikasi mereka dengan berkesan tanpa adanya sokongan Mcrypt. OpenSSL dan defuse/php-encryption menawarkan alternatif yang teguh untuk penyulitan yang boleh dipercayai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memindahkan Penyulitan PHP Saya dengan Selamat dari Mcrypt ke OpenSSL?. 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