PHP ZipArchive を通じて圧縮パッケージを暗号化および復号化するにはどうすればよいですか?
概要:
PHP ZipArchive は、ZIP 圧縮ファイルを作成、開き、操作するための強力なクラスです。 ZipArchive クラス自体は ZIP 圧縮ファイルの暗号化と復号化の機能を直接提供しませんが、openssl 拡張機能などのいくつかの PHP 拡張機能を使用して、圧縮パッケージに対する暗号化と復号化の操作を実装できます。この記事では、PHP ZipArchive クラスと openssl 拡張機能を使用して、圧縮パッケージの暗号化と復号化操作を実装する方法を紹介します。
手順:
extension=zip
と extension=openssl
のコメントを解除することで有効にできます。 <?php $zip = new ZipArchive(); $zipname = 'encrypted.zip'; if ($zip->open($zipname, ZipArchive::CREATE) === TRUE) { // 添加需要加密的文件到压缩包中 $zip->addFile('data.txt', 'data.txt'); // 关闭压缩包 $zip->close(); // 加密压缩包 $zipdata = file_get_contents($zipname); $encryptedzip = openssl_encrypt($zipdata, 'AES-128-CBC', 'password', OPENSSL_RAW_DATA, '1234567890123456'); file_put_contents($zipname, $encryptedzip); echo '压缩包已加密。'; } else { echo '创建压缩包失败。'; } ?>
上記のサンプル コードでは、AES-128-CBC 暗号化アルゴリズムを使用し、パスワードは password
、初期化ベクトルは次のとおりです。 1234567890123456
。必要に応じて、さまざまな暗号化アルゴリズムとパスワードを選択して、圧縮パッケージを暗号化できます。
<?php $zipname = 'encrypted.zip'; // 解密压缩包 $encryptedzip = file_get_contents($zipname); $decryptedzip = openssl_decrypt($encryptedzip, 'AES-128-CBC', 'password', OPENSSL_RAW_DATA, '1234567890123456'); file_put_contents($zipname, $decryptedzip); // 打开解密后的压缩包 $zip = new ZipArchive(); if ($zip->open($zipname) === TRUE) { // 解压缩 $zip->extractTo('unzip/'); $zip->close(); echo '压缩包已解密并解压缩。'; } else { echo '打开压缩包失败。'; } ?>
上記のサンプル コードでは、圧縮パッケージを復号するための暗号化に使用されたのと同じ AES-128-CBC アルゴリズムと暗号を使用しました。
注:
結論:
PHP ZipArchive クラスと openssl 拡張機能を通じて、ZIP 圧縮パッケージの暗号化および復号化操作を実装できます。このようにして、送信中および保存中の機密ファイルのセキュリティを確保できます。この記事が、PHP ZipArchive の暗号化および復号化機能の理解と応用に役立つことを願っています。
以上がPHP ZipArchive を通じて圧縮パッケージの暗号化と復号化を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。