CakeFest 2024: The Official CakePHP Conference

ZipArchive::setEncryptionName

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

ZipArchive::setEncryptionNameDéfinit la méthode de chiffrement d'une entrée définit par son nom

Description

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

Définit la méthode de chiffrement d'une entrée définit par son nom.

Liste de paramètres

name

Nom de l'entrée.

method

La méthode de chiffrement définit par l'une des constantes ZipArchive::EM_.

password

Mot de passe optionnel, valeur par défaut utilisé si absent.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.0.0 password est désormais nullable.

Exemples

Cet exemple crée un fichier d'archive ZIP test.zip et ajoute le fichier test.txt chiffré grâce à la méthode AES 256.

Exemple #1 Archiver et chiffrer un fichier

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

Notes

Note:

Cette fonction est seulement disponible quand compilé contre libzip ≥ 1.2.0.

Voir aussi

add a note

User Contributed Notes 2 notes

up
10
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
2
romke at romke dot nl
2 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