Home >Backend Development >PHP Tutorial >How to implement encryption and decryption of compressed packages through PHP ZipArchive?
How to encrypt and decrypt compressed packages through PHP ZipArchive?
Overview:
PHP ZipArchive is a powerful class for creating, opening and manipulating ZIP compressed files. Although the ZipArchive class itself does not directly provide the function of encrypting and decrypting ZIP compressed files, we can use some PHP extensions to implement encryption and decryption operations on compressed packages, such as openssl extensions. In this article, we will introduce how to use the PHP ZipArchive class and openssl extension to implement encryption and decryption operations on compressed packages.
Steps:
extension=zip
and extension=openssl
in the php.ini configuration file. <?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 '创建压缩包失败。'; } ?>
In the above sample code, we used the AES-128-CBC encryption algorithm, the password is password
, and the initialization vector is 1234567890123456
. You can choose different encryption algorithms and passwords to encrypt the compressed package according to your needs.
<?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 '打开压缩包失败。'; } ?>
In the above sample code, we used the same AES-128-CBC algorithm and cipher used for encryption to decrypt the compressed package.
Note:
Conclusion:
Through the PHP ZipArchive class and openssl extension, we can implement encryption and decryption operations on ZIP compressed packages. This way, we can ensure the security of sensitive files during transmission and storage. I hope this article will help you understand and apply the encryption and decryption functions of PHP ZipArchive.
The above is the detailed content of How to implement encryption and decryption of compressed packages through PHP ZipArchive?. For more information, please follow other related articles on the PHP Chinese website!