PHP dan FTP: Sulitkan dan nyahsulit fail jauh
Ikhtisar:
Dengan perkembangan teknologi rangkaian, Protokol Pemindahan Fail (FTP) pasti menghadapi cabaran keselamatan apabila memindahkan fail. Artikel ini akan meneroka cara menggunakan bahasa pengaturcaraan PHP digabungkan dengan FTP untuk melaksanakan penyulitan dan penyahsulitan fail jauh untuk melindungi keselamatan fail semasa penghantaran.
<?php $ftp_server = "ftp.example.com"; $ftp_username = "username"; $ftp_password = "password"; // 连接FTP服务器 $connection = ftp_connect($ftp_server); if (!$connection) { die("无法连接到FTP服务器"); } // 登录FTP服务器 $login = ftp_login($connection, $ftp_username, $ftp_password); if (!$login) { die("FTP登录失败"); } // 上传文件 $file_path = "/path/to/local/file/example.txt"; $upload = ftp_put($connection, "/path/to/remote/file/example.txt", $file_path, FTP_BINARY); if (!$upload) { die("文件上传失败"); } // 下载文件 $download = ftp_get($connection, "/path/to/local/file/example.txt", "/path/to/remote/file/example.txt", FTP_BINARY); if (!$download) { die("文件下载失败"); } // 关闭FTP连接 ftp_close($connection); ?>
<?php // 加密文件 function encryptFile($file_path, $key) { $content = file_get_contents($file_path); $encrypted_content = openssl_encrypt($content, "AES-256-CBC", $key, 0, openssl_random_pseudo_bytes(16)); file_put_contents($file_path, $encrypted_content); } // 解密文件 function decryptFile($file_path, $key) { $encrypted_content = file_get_contents($file_path); $decrypted_content = openssl_decrypt($encrypted_content, "AES-256-CBC", $key, 0, openssl_random_pseudo_bytes(16)); file_put_contents($file_path, $decrypted_content); } // 使用FTP上传加密文件 $file_path = "/path/to/local/file/example.txt"; $key = "encryption_key"; encryptFile($file_path, $key); $upload = ftp_put($connection, "/path/to/remote/file/example.txt", $file_path, FTP_BINARY); if (!$upload) { die("加密文件上传失败"); } // 使用FTP下载加密文件并解密 $download = ftp_get($connection, "/path/to/local/file/example.txt", "/path/to/remote/file/example.txt", FTP_BINARY); if (!$download) { die("加密文件下载失败"); } $file_path = "/path/to/local/file/example.txt"; decryptFile($file_path, $key); // 关闭FTP连接 ftp_close($connection); ?>
Dalam kod di atas, kami mula-mula mentakrifkan encryptFile
和decryptFile
dua fungsi untuk menyulitkan dan menyahsulit fail masing-masing. Semasa proses penyulitan, kami menggunakan AES-256-CBC untuk menyulitkan kandungan fail dan menyimpannya ke fail asal. Semasa proses penyahsulitan, kami menggunakan kunci yang sama untuk menyahsulit kandungan fail yang disulitkan dan menyimpan kandungan yang dinyahsulit ke fail asal.
Kemudian, kami memuat naik fail yang disulitkan ke pelayan jauh dan memuat turun fail yang disulitkan dari pelayan jauh menggunakan FTP. Selepas memuat turun, kami menggunakan kunci yang sama untuk menyahsulit fail yang disulitkan dan memulihkannya kepada fail asal.
Atas ialah kandungan terperinci PHP dan FTP: Sulitkan dan nyahsulit fail jauh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!