php生成的zip文件添加一个加密密码,两种方式

自己的账单系统(https://jz.alipay168.cn) 新增了一个导出账单功能,导出后生成一个zip压缩包,需要解压密码解密,这样相对安全。


从php7.2开始就可以设置加密的密码了,之前版本只能设置解压的密码哦。

设置加密的两种方式分别是通过文件名和索引顺序对某些文件加密。

$localPath = $path . $fileName;//本地文件路径
//生成zip压缩包
$zip = new \ZipArchive();
$password = rand(100000, 999999);//随机生成一个密码
$zipFile = $path . md5($user_id) . '.zip';
$readme = $path . 'readme.txt';
$readmeContent = '请将zip包解压,解压密码请查看记账APP的系统消息,解压后打开文件,即可看到账单信息';
file_put_contents($readme, $readmeContent);
if ($zip->open($zipFile, \ZipArchive::CREATE) === true) {
    //$zip->setPassword($password);//这是解压文件的时候用的,不是加密哦
    $zip->addFile($localPath, "账单.xlsx");
    $zip->addFile($readme, '解压密码.txt');
   $zip->setEncryptionName('账单.xlsx', \ZipArchive::EM_AES_256,$password);//按照文件名加密
   // $zip->setEncryptionIndex(0, \ZipArchive::EM_AES_256,$password);//第一个文件加密
    $zip->close();
    @unlink($localPath);
    @unlink($readme);
}

这样你需要加密的文件就可以放心发送了image.png

评论/留言