Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Menyulitkan dan Menyahsulit Fail Menggunakan OpenSSL dalam PHP?
Menyulitkan dan Menyahsulit Fail dengan MCrypt
Pustaka Mcrypt menyediakan fungsi untuk operasi penyulitan dan penyahsulitan dalam PHP. Berikut ialah contoh cara menggunakannya untuk menyulitkan dan menyahsulit fail:
// ENCRYPT FILE function encryptFile() { $key = generateKey(); // Function to generate a secure encryption key $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-128-cbc')); // Generate a random initialization vector $plaintext = file_get_contents(PATH . '/ftpd/' . $file); $encrypted = openssl_encrypt($plaintext, 'aes-128-cbc', $key, OPENSSL_RAW_DATA, $iv); $encryptedFile = fopen(PATH . '/encrypted/' . $file . '.txt', 'w'); fwrite($encryptedFile, $iv . $encrypted); fclose($encryptedFile); unlink(PATH . '/ftpd/' . $file); } // DECRYPT FILE function decryptFile() { $key = generateKey(); // Function to generate the same encryption key used in encryption if ($handle = opendir(PATH . '/encrypted')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $encryptedFile = fopen(PATH . '/encrypted/' . $file, 'r'); $encryptedData = fread($encryptedFile, filesize(PATH . '/encrypted/' . $file)); $iv = substr($encryptedData, 0, openssl_cipher_iv_length('aes-128-cbc')); $decrypted = openssl_decrypt(substr($encryptedData, openssl_cipher_iv_length('aes-128-cbc')), 'aes-128-cbc', $key, OPENSSL_RAW_DATA, $iv); $decryptedFile = fopen(PATH . '/decrypted/' . $file, 'w'); fwrite($decryptedFile, $decrypted); fclose($decryptedFile); // unlink(PATH . '/encrypted/' . $file); } } closedir($handle); } }
Nota penting:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyulitkan dan Menyahsulit Fail Menggunakan OpenSSL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!