PHP Velho Oeste 2024

ZipArchive::setEncryptionName

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

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

Descrierea

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

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

Parametri

name

Name of the entry.

method

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

password

Optional password, default used when missing.

Valorile întoarse

Întoarce valoarea true în cazul succesului sau false în cazul eșecului.

Exemple

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

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

Note

Notă:

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

A se vedea și

add a note add a note

User Contributed Notes 2 notes

up
9
mauro dot chojrin at leewayweb dot com
3 years 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
1
romke at romke dot nl
3 years 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