自己的账单系统(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);
}这样你需要加密的文件就可以放心发送了