標準の php コンポーネントだけを使用してファイルを暗号化する方法を説明するコード スニペット、アドバイス、またはチュートリアルが Web で見つからなかったことに驚いています。
だから私はあなたのアドバイスを求めています: mcrypt と php 標準関数だけを使用してファイルを暗号化/復号化する方法は? gnupg を使用するオプションがありません。いいえ、実際、私の質問は次のとおりです。ファイルを台無しにせずに上記を行うにはどうすればよいですか? 私はすでにこれらのファイルを徹底的に暗号化/復号化しているため (mcrypt/AES を使用)、それは jpeg、PDF、一部の .doc ファイル、および興味深いことにパスワードで保護された .docx ファイルに対してうまく機能します。セキュリティで保護されていない .docx ファイルやその他の多くのファイル タイプでは機能しません。
私の現在のコードはこれです。基本的には、ファイルを開き、mcrypt/AES を使用してデータをかき混ぜ、サーバーに書き込み、ユーザーにダウンロードさせるだけです。
アップロード後にエンコードするには:
// using codeigniter's encryption library, which uses mcrypt and the AES cypher
$this->load->library('encrypt');
$pathandname = $config['upload_path'].$output['content'][$a]['file_name'];
$theFile = file_get_contents($pathandname);
$fh = fopen($pathandname,'w');
fwrite($fh,$this->encrypt->encode($theFile));
fclose($fh);
デコードしてダウンロードするには:
$this->load->library('encrypt');
$pathandname = $filelocation.$results[0]['encryptedfile'];
$theFile = file_get_contents($pathandname);
$decrypted = $this->encrypt->decode($theFile);
force_download($filename, $decrypted); // a codeigniter function to force download via headers