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!