ZipArchive::setEncryptionName
(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)
ZipArchive::setEncryptionName — Set the encryption method of an entry defined by its name
说明
public ZipArchive::setEncryptionName(string
$name
, int $method
, ?string $password
= null
): boolSet the encryption method of an entry defined by its name.
参数
-
name
-
Name of the entry.
-
method
-
The encryption method defined by one of the ZipArchive::EM_ constants.
-
password
-
Optional password, default used when missing.
返回值
成功时返回 true
, 或者在失败时返回 false
。
更新日志
版本 | 说明 |
---|---|
8.0.0 |
password is now nullable.
|
范例
This example creates a ZIP file archive test.zip and add the file test.txt encrypted using the AES 256 method.
示例 #1 Archive and encrypt a file
<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
$zip->setPassword('secret');
$zip->addFile('text.txt');
$zip->setEncryptionName('text.txt', ZipArchive::EM_AES_256);
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>
注释
注意:
This function is only available if built against libzip ≥ 1.2.0.
参见
- ZipArchive::setPassword() - Set the password for the active archive
- ZipArchive::setEncryptionIndex() - Set the encryption method of an entry defined by its index

User Contributed Notes 2 notes
mauro dot chojrin at leewayweb dot com ¶
1 year ago
Files compressed using this function on Linux won't be decompressed using Windows.
There seems to be some incompatibility with Windows built-in decompressor.
There's an alternative library that works better here: https://github.com/Ne-Lexa/php-zip
I got windows to open a file created with it by using the PKWARE encryption method
romke at romke dot nl ¶
1 year ago
On windows is the "EM_AES_256" by default not supported, but you can use winrar, winzip or 7zip.
At first we had a password of 128 chars (this was to long) and all extract applications give an error that the password was incorrect.
The next time we did use a password of 52 chars., this time i did work!
备份地址:http://www.lvesu.com/blog/php/ziparchive.setencryptionname.php