SymfonyWorld Online 2022 Winter Edition

ZipArchive::setEncryptionName

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionNameSet the encryption method of an entry defined by its name

Descrição

public ZipArchive::setEncryptionName(string $name, int $method, ?string $password = null): bool

Set the encryption method of an entry defined by its name.

Parâmetros

name

Name of the entry.

method

The encryption method defined by one of the ZipArchive::EM_ constants.

password

Optional password, default used when missing.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Changelog

Versão Descrição
8.0.0 password is now nullable.

Exemplos

This example creates a ZIP file archive test.zip and add the file test.txt encrypted using the AES 256 method.

Exemplo #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";
}
?>

Notas

Nota:

This function is only available if built against libzip ≥ 1.2.0.

Veja Também

add a note

User Contributed Notes 2 notes

up
4
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
up
0
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!
To Top