Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan penyulitan dan penyahsulitan pakej termampat melalui PHP ZipArchive?
Bagaimana untuk melaksanakan penyulitan dan penyahsulitan pakej termampat melalui PHP ZipArchive?
Ikhtisar:
PHP ZipArchive ialah kelas yang berkuasa untuk mencipta, membuka dan memanipulasi fail mampat ZIP. Walaupun kelas ZipArchive sendiri tidak secara langsung menyediakan fungsi menyulitkan dan menyahsulit fail termampat ZIP, kami boleh menggunakan beberapa sambungan PHP untuk melaksanakan operasi penyulitan dan penyahsulitan pada pakej termampat, seperti sambungan openssl. Dalam artikel ini, kami akan memperkenalkan cara menggunakan kelas ZipArchive PHP dan sambungan openssl untuk melaksanakan operasi penyulitan dan penyahsulitan pada pakej termampat.
Langkah:
extension=zip
dan extension=openssl
dalam fail konfigurasi php.ini. 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 '打开压缩包失败。'; } ?>
rrreee
Dalam kod sampel di atas, kami menggunakan algoritma dan sifir AES-128-CBC yang sama yang digunakan untuk penyulitan untuk menyahsulit pakej termampat. Nota:
Kesimpulan:
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penyulitan dan penyahsulitan pakej termampat melalui PHP ZipArchive?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!