현재 위치: > 최신 기사 목록> PHP 및 FTP : 원격 파일의 암호화 및 암호 해독 구현

PHP 및 FTP : 원격 파일의 암호화 및 암호 해독 구현

M66 2025-06-07

PHP 및 FTP : 원격 파일의 암호화 및 암호 해독 구현

네트워크 기술의 지속적인 개발로 FTP (파일 전송 프로토콜)는 파일을 전송할 때 점점 더 많은 보안 문제에 직면 해 있습니다. 이 기사는 PHP 프로그래밍을 결합하여 원격 파일의 암호화 및 암호 해독을 실현하여 파일 전송 중 데이터의 보안을 보장하는 방법을 소개합니다.

FTP 파일 전송 기본 사항

FTP는 사용자가 로컬 호스트와 원격 서버간에 파일을 업로드하거나 다운로드 할 수있는 공통 네트워크 파일 전송 프로토콜입니다. 다음은 PHP를 사용하여 FTP 서버에 연결하고 파일 업로드 및 다운로드를 완료하기위한 기본 예제 코드입니다.

<?php
$ftp_server = "ftp.example.com";
$ftp_username = "username";
$ftp_password = "password";
<p>// FTP 서버에 연결합니다<br>
$ connection = ftp_connect ($ ftp_server);<br>
if (! $ connection) {<br>
다이 ( "FTP 서버에 연결할 수 없음");<br>
}</p>
<p>// FTP 서버에 로그인합니다<br>
$ login = ftp_login ($ connection, $ ftp_username, $ ftp_password);<br>
if (! $ 로그인) {<br>
다이 ( "FTP 로그인 실패");<br>
}</p>
<p>// 파일 업로드<br>
$ file_path = "/path/to/local/file/example.txt";<br>
$ upload = ftp_put ($ connection, "/path/to/remote/file/example.txt", $ file_path, ftp_binary);<br>
if (! $ 업로드) {<br>
다이 ( "파일 업로드 실패");<br>
}</p>
<p>// 파일을 다운로드합니다<br>
$ download = ftp_get ($ connection, "/path/to/local/file/example.txt", "/path/to/remote/file/example.txt", ftp_binary);<br>
if (! $ download) {<br>
다이 ( "파일 다운로드 실패");<br>
}</p>
<p>// FTP 연결을 닫습니다<br>
ftp_close ($ connection);<br>
?><br>

파일 암호화 및 암호 해독의 기본 원리

파일의 보안을 보장하기 위해 파일 내용을 전송하기 전에 암호화 한 다음 다운로드 후에 해독 할 수 있습니다. 이 기사는 대칭 암호화 알고리즘 AES-256-CBC를 사용하여 파일 암호화 및 암호 해독에 PHP를 사용하는 방법을 보여줍니다.

<?php
// 암호화 된 파일
function encryptFile($file_path, $key) {
    $content = file_get_contents($file_path);
    $iv = openssl_random_pseudo_bytes(16);
    $encrypted_content = openssl_encrypt($content, "AES-256-CBC", $key, 0, $iv);
    file_put_contents($file_path, base64_encode($iv . $encrypted_content));
}
<p>// 파일을 해독합니다<br>
함수 decryptFile ($ file_path, $ key) {<br>
$ data = base64_decode (file_get_contents ($ file_path));<br>
$ iv = substr ($ data, 0, 16);<br>
$ alcrypted_content = substr ($ data, 16);<br>
$ decrypted_content = OpenSSL_DECRYPT ($ Encrypted_Content, "AES-256-CBC", $ key, 0, $ IV);<br>
file_put_contents ($ file_path, $ decrypted_content);<br>
}</p>
<p>// ftp를 사용하여 암호화 된 파일을 업로드합니다<br>
$ file_path = "/path/to/local/file/example.txt";<br>
$ key = "encryption_key";<br>
EncryptFile ($ file_path, $ 키);<br>
$ upload = ftp_put ($ connection, "/path/to/remote/file/example.txt", $ file_path, ftp_binary);<br>
if (! $ 업로드) {<br>
다이 ( "암호화 된 파일 업로드 실패");<br>
}</p>
<p>// FTP를 사용하여 암호화 된 파일을 다운로드하고 해독합니다.<br>
$ download = ftp_get ($ connection, "/path/to/local/file/example.txt", "/path/to/remote/file/example.txt", ftp_binary);<br>
if (! $ download) {<br>
다이 ( "암호화 된 파일 다운로드 실패");<br>
}<br>
DecryptFile ($ file_path, $ 키);</p>
<p>// FTP 연결을 닫습니다<br>
ftp_close ($ connection);<br>
?><br>

위의 코드에서 암호화 기능은 AES-256-CBC 알고리즘을 사용하여 파일 내용을 암호화하고 암호화 된 컨텐츠로 초기화 벡터 (iv)를 저장합니다. 해독 파일 함수는 원래 컨텐츠를 복원하기 위해 파일에서 IV 및 암호화 된 데이터를 추출합니다. 이런 식으로, 전송 중에 파일이 가로 채워도 쉽게 갈라질 수 없습니다.

요약

PHP와 FTP 프로토콜을 결합하여 대칭 암호화 알고리즘을 사용하여 원격 파일의 암호화 및 암호 해독을 실현하여 파일 전송의 보안을 효과적으로 향상시킵니다. 실제 응용 분야에서 암호화 측정 외에도 주요 관리, 신원 인증 및 권한 제어를 강화하여보다 안정적인 파일 전송 환경을 만들어야합니다.