PHP7.2:如何使用PHP7.2创建密码保护的zip

PHP7.2:如何使用PHP7.2创建密码保护的zip,php,encryption,zip,password-protection,ziparchive,Php,Encryption,Zip,Password Protection,Ziparchive,有人能建议我们如何在PHP7.2中创建密码保护的zip吗 $zip = new \ZipArchive(); //now working in php 7.2" $zip->setPassword($password); //also this is not creating protected zip $zip->setEncryptionName($filename, ZipArchive::EM_AES_256, $password); 从PHP7.2开始,您

有人能建议我们如何在PHP7.2中创建密码保护的zip吗

$zip = new \ZipArchive();

//now working in php 7.2"
$zip->setPassword($password);

//also this is not creating protected zip

$zip->setEncryptionName($filename, ZipArchive::EM_AES_256, $password);

从PHP7.2开始,您应该能够使用每个文件的密码作为第三个参数进行加密,或者,如果以前调用过,则可以省略该参数并使用默认密码

直接从:

从PHP 7.2.0和libzip 1.2.0开始,密码用于解压缩存档文件,也是ZipArchive::setEncryptionName()和ZipArchive::setEncryptionIndex()的默认密码。以前,此功能仅设置用于解压缩存档文件的密码;它没有将不受密码保护的ZipArchive转换为受密码保护的ZipArchive

下面的代码执行上述两种情况。(有趣的是,我的7-Zip在打开此文件时似乎“记住”了最后输入的密码,因此在我重新打开文件之前,它不会让我同时尝试这两个密码,但我认为这是7-Zip中的一个错误。)

$zip=新的ZipArchive;
if(!$zip->open('test.zip',ZipArchive::CREATE)){
die('无法创建zip文件');
}
//设置共享/默认密码
$zip->setPassword('cheese');
//添加具有默认密码的文件
$zip->addFromString('test-1.txt','这是文件一');
$zip->setEncryptionName('test-1.txt',ZipArchive::EM_AES_256);
//添加具有自定义密码的文件
$zip->addFromString('test-2.txt','这是文件二');
$zip->setEncryptionName('test-2.txt',ZipArchive::EM_AES_256',自定义密码');
$zip->close();

您似乎没有打开文件流?@Jonnix我在这里的代码中没有提到它,只是突出显示了用于密码保护的代码