Red de conocimiento informático - Problemas con los teléfonos móviles - contraseña zip php

contraseña zip php

Utiliza el módulo zip de PHP para compresión y cifrado.

Iniciar$zipArc?=?new?\ZipArchive();if($zipArc-gt;open('/home/test.zip',?ZipArchive::CREATE?|?ZipArchive::OVERWRITE )? ===?verdadero)?{//¿Establecer contraseña? Tenga en cuenta que esto no es cifrado, solo establece la contraseña

if(!$zipArc-gt; setPassword('password'))?{throw?new?RuntimeException('Set?password?failed');

}//Agregar archivos al paquete comprimido

$zipArc-gt; addFile('/home/test.png', ?'' 1/test.png'); // ¿Archivos cifrados? El nombre del archivo y la ruta aquí se encuentran en el paquete comprimido

if(! $zipArc-gt; setEncryptionName('1/test.png',?ZipArchive::EM_AES_256))?{throw?new? RuntimeException('¿Establecer?encriptación?falló');

}

}

}

$zipArc-gt;close() ;

p>

Notas

1 PHP 7.2 o inferior no admite cifrado

PHP 7 o inferior no admite cifrado. 2. Echemos un vistazo a la explicación en la documentación oficial de PHP

A partir de PHP 7.2.0 y libzip 1.2.0, las contraseñas se utilizan al descomprimir paquetes comprimidos, ZipArchive::setEncryptionName() y ZipArchive: :setEncryptionIndex( ) también utiliza la contraseña predeterminada.

Anteriormente, esta función solo establecía la contraseña para descomprimir el archivo y no convertía un ZipArchive sin contraseña en un ZipArchive protegido con contraseña.

Es decir, antes de php 7.2, el método setPassword('password') solo establece la contraseña para las contraseñas predeterminadas setEncryptionName() y setEncryptionIndex(), ¡sin cifrado!

El método 2 no está cifrado, pero sí cifrado.

2 Método no encontrado

Indica que no hay métodos setEncryptionName y setEncryptionIndex Utilice los siguientes parámetros para compilar el módulo zip

--with-. libzip

--enable-zip

3 Problema de estructura de directorios

El directorio de archivos a comprimir, como /home/test/a. png

Después de la compresión, encontrará que la estructura de directorios en el paquete comprimido es /home/test/a.png.

En otras palabras, el paquete comprimido conserva el directorio original. del archivo original. Pero, ¿qué debemos hacer si queremos personalizar el directorio del paquete comprimido?

$a = '/home/test.png';

$b = '1/test.png' //$a es la ruta al archivo que se agregará. ? $b es la ruta en el paquete comprimido $zipArc-gt; addFile($a, $b);