PHP et FTP : crypter et décrypter les fichiers distants
Aperçu :
Avec le développement de la technologie réseau, le protocole de transfert de fichiers (FTP) est inévitablement confronté à des défis de sécurité lors du transfert de fichiers. Cet article explorera comment utiliser le langage de programmation PHP combiné à FTP pour mettre en œuvre le cryptage et le déchiffrement de fichiers distants afin de protéger la sécurité des fichiers pendant la transmission.
<?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); ?>
Dans le code ci-dessus, nous définissons d'abord encryptFile
和decryptFile
deux fonctions pour crypter et décrypter les fichiers respectivement. Pendant le processus de cryptage, nous utilisons AES-256-CBC pour crypter le contenu du fichier et l'enregistrer dans le fichier d'origine. Pendant le processus de décryptage, nous utilisons la même clé pour décrypter le contenu du fichier crypté et enregistrer le contenu décrypté dans le fichier d'origine.
Ensuite, nous téléchargeons le fichier crypté sur le serveur distant et téléchargeons le fichier crypté depuis le serveur distant via FTP. Après le téléchargement, nous utilisons la même clé pour décrypter le fichier crypté et le restaurer dans le fichier d'origine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!