Rumah >pembangunan bahagian belakang >tutorial php >Apakah Alternatif Selamat kepada Sambungan mcrypt yang Dihentikan untuk Penyulitan dan Penyahsulitan Kata Laluan?

Apakah Alternatif Selamat kepada Sambungan mcrypt yang Dihentikan untuk Penyulitan dan Penyahsulitan Kata Laluan?

Patricia Arquette
Patricia Arquetteasal
2024-12-11 12:40:18224semak imbas

What are the Secure Alternatives to the Deprecated mcrypt Extension for Password Encryption and Decryption?

Alternatif kepada Sambungan mcrypt yang Dihentikan untuk Penyulitan Kata Laluan

Sambungan mcrypt, yang sebelum ini digunakan untuk penyulitan kata laluan, telah ditamatkan dan akan dialih keluar sepenuhnya dalam PHP 7.2. Ini menimbulkan kebimbangan tentang mencari alternatif yang sesuai untuk penyulitan kata laluan selamat.

Pendekatan Disyorkan: Pencirian Kata Laluan

Sebagai amalan terbaik, adalah amat disyorkan untuk mencincang kata laluan dan bukannya menyulitkan mereka. Hashing menukar kata laluan kepada nilai yang tidak boleh diterbalikkan, menjadikannya tidak mungkin untuk penyerang memulihkan kata laluan asal walaupun mereka mendapat akses kepada pangkalan data atau fail anda.

Kaedah Penyulitan Alternatif

Walau bagaimanapun, jika anda memerlukan penyulitan untuk kata laluan anda dan memerlukan keupayaan untuk menyahsulitnya, pilihan berikut adalah disyorkan:

  • Libsodium: Sambungan PHP yang menyediakan penyulitan dan penyahsulitan selamat.
  • nyegah/penyulitan php: Kod PHP lurus perpustakaan yang menawarkan penyulitan dan penyahsulitan selamat keupayaan.
  • OpenSSL: Pustaka penyulitan yang tersedia secara meluas yang boleh disusun dengan PHP jika belum dipasang pada pelayan anda.

Contoh Kod

Untuk menggunakan salah satu daripada alternatif ini, anda boleh mengikut struktur yang serupa dengan mcrypt asal anda kod:

// Generate a secure random initialization vector
$iv = random_bytes(16);

// Encrypt the password using AES-256 in CBC mode
// Note: Replace key with a securely generated encryption key
$encrypted = openssl_encrypt($string, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

// Store the encrypted password and initialization vector for later decryption

Penyahsulitan

Penyahsulitan boleh dilakukan menggunakan perpustakaan dan kunci yang sama:

// Decrypt the encrypted password using AES-256 in CBC mode
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

Atas ialah kandungan terperinci Apakah Alternatif Selamat kepada Sambungan mcrypt yang Dihentikan untuk Penyulitan dan Penyahsulitan Kata Laluan?. 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