Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyulitkan dan Menyahsulit Fail dengan Selamat Menggunakan OpenSSL dan Kelas PHP Tersuai?

Bagaimana untuk Menyulitkan dan Menyahsulit Fail dengan Selamat Menggunakan OpenSSL dan Kelas PHP Tersuai?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-21 10:03:10843semak imbas

How to Securely Encrypt and Decrypt Files Using OpenSSL and a Custom PHP Class?

Cara Menyulitkan dan Menyahsulit Fail Menggunakan Mcrypt

Mcrypt, pustaka penyulitan popular, telah dihentikan dan tidak lagi disyorkan untuk digunakan. Atas sebab ini, kami akan meneroka teknik penyulitan alternatif menggunakan sambungan OpenSSL.

Mencipta Kelas Penyulitan Tersuai

Untuk merangkum proses penyulitan, kami mentakrifkan kelas tersuai , AES256Encryption, yang memanfaatkan OpenSSL's AES-256 algoritma.

class AES256Encryption
{
    const BLOCK_SIZE = 8;
    const IV_LENGTH = 16;
    const CIPHER = 'AES256';

    //... Encryption and Decryption Methods ...
}

Penggunaan

$text = 'Plain text to be encrypted';
$key = 'Encryption key';
$iv = AES256Encryption::generateIv();  // Generates a random initialization vector (IV)
$encryptedText = AES256Encryption::encrypt($text, $key, $iv);  // Encrypts the text
$decryptedText = AES256Encryption::decrypt($encryptedText, $key, $iv);  // Decrypts the encrypted text

Sampel Output

Original Text: Plain text to be encrypted
Encrypted: Encrypted ciphertext
Decrypted: Plain text to be encrypted

Pertimbangan Lain

  • IV Penjanaan: Pastikan penjanaan selamat bagi vektor permulaan (IV) menggunakan AES256Encryption::generateIv().
  • Padding: Teks input dipadatkan kepada gandaan saiz blok ke pastikan penyulitan yang betul.
  • Pengekodan Base64: data yang disulitkan dan dinyahsulit adalah dikodkan base64 untuk kemudahan.
  • Pengecualian: Pengendalian ralat disertakan untuk melaporkan isu yang berpotensi semasa penyulitan atau penyahsulitan.

Pendekatan dikemas kini ini menggunakan OpenSSL menyediakan kaedah yang selamat dan boleh dipercayai untuk menyulitkan dan menyahsulit fail dan data menggunakan penyulitan terkini piawaian.

Atas ialah kandungan terperinci Bagaimana untuk Menyulitkan dan Menyahsulit Fail dengan Selamat Menggunakan OpenSSL dan Kelas PHP Tersuai?. 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