Aktueller Standort: Startseite> Neueste Artikel> Vollständige Implementierungs -Tutorial zum Verschlingen und Entschlüsseln des PHP -Ziparchive -Komprimierungspakets

Vollständige Implementierungs -Tutorial zum Verschlingen und Entschlüsseln des PHP -Ziparchive -Komprimierungspakets

M66 2025-07-28

PHP -Ziparchive- und OpenSSL -Erweiterungen implementieren die Verschlüsselung und Entschlüsselung des Kompressionspakets

Die Ziparchive -Klasse in PHP wird zum Erstellen und Manipulieren von Zip -komprimierten Dateien verwendet. Obwohl Ziparchive selbst die Verschlüsselungsfunktion in Kombination mit der OpenSSL -Erweiterung nicht direkt unterstützt, können wir die Verschlüsselungs- und Entschlüsselungsverarbeitung komprimierter Pakete implementieren, um die Dateisicherheit zu verbessern.

Umweltvorbereitung

Stellen Sie sicher, dass die Ziparchive- und OpenSSL -Erweiterungen in der PHP -Umgebung aktiviert sind, und Sie können Extension = ZIP und Extension = OpenSL in php.ini aktivieren.

Verschlüsselungsprozess für Komprimierungspaket

Verwenden Sie zunächst Ziparchive, um eine ZIP -Datei zu erstellen und die Zieldatei zum komprimierten Paket hinzuzufügen. Der komprimierte Dateiinhalt wird dann durch die Verschlüsselungsfunktion von OpenSSL verschlüsselt. Der Beispielcode lautet wie folgt:

 <?php
$zip = new ZipArchive();
$zipname = 'encrypted.zip';

if ($zip->open($zipname, ZipArchive::CREATE) === TRUE) {
    // Fügen Sie eine Datei hinzu
    $zip->addFile('data.txt', 'data.txt');
    $zip->close();

    // Lesen Sie die komprimierten Paketdaten und verschlüsseln Sie sie
    $zipdata = file_get_contents($zipname);
    $encryptedzip = openssl_encrypt($zipdata, 'AES-128-CBC', 'password', OPENSSL_RAW_DATA, '1234567890123456');
    file_put_contents($zipname, $encryptedzip);

    echo 'Das komprimierte Paket ist verschlüsselt。';
} else {
    echo 'Es wurde kein komprimiertes Paket erstellt。';
}
?>

Im obigen Beispiel wird der AES-128-CBC-Algorithmus verwendet, das Passwort ist Passwort und der Initialisierungsvektor ist 1234567890123456 . Sie können den Verschlüsselungsalgorithmus und den Schlüssel nach Bedarf einstellen.

Komprimierungspaket Entschlüsselungsprozess

Verwenden Sie beim Entschlüsseln die Decryption -Funktion der OpenSSL, um die komprimierten Paketdaten wiederherzustellen, und verwenden Sie dann Ziparchive, um zu dekomprimieren. Der Beispielcode lautet wie folgt:

 <?php
$zipname = 'encrypted.zip';

// Lesen Sie verschlüsselte komprimierte Paketinhalte
$encryptedzip = file_get_contents($zipname);

// Entschlüsseln
$decryptedzip = openssl_decrypt($encryptedzip, 'AES-128-CBC', 'password', OPENSSL_RAW_DATA, '1234567890123456');
file_put_contents($zipname, $decryptedzip);

// 打开Entschlüsseln后的压缩包并解压
$zip = new ZipArchive();
if ($zip->open($zipname) === TRUE) {
    $zip->extractTo('unzip/');
    $zip->close();
    echo '压缩包已Entschlüsseln并解压缩。';
} else {
    echo 'Das komprimierte Paket nicht öffnen。';
}
?>

Der gleiche Algorithmus und die gleichen Tasten werden im Entschlüsselungsschritt verwendet, wie bei verschlüsseltem, dass die Daten korrekt wiederhergestellt werden.

Dinge zu beachten

  • Bitte stellen Sie sicher, dass der Verschlüsselungskenn- und Initialisierungsvektor sicher ist, um Leckagen zu vermeiden.
  • Wählen Sie die entsprechenden Verschlüsselungsalgorithmen und die Kennwortstärke gemäß den tatsächlichen Bedürfnissen zur Verbesserung der Sicherheit aus.
  • Der Dekompressionspfad, der Passwort und der Initialisierungsvektor sollten entsprechend den spezifischen Projektanforderungen angepasst werden.

Zusammenfassen

Durch die Kombination von PHP -Ziparchive -Klasse und OpenSSL -Erweiterung kann die Verschlüsselung und Entschlüsselung von ZIP -Dateien effektiv realisiert werden, wodurch die Sicherheit von Dateien während der Übertragung und des Speichers verbessert wird. Ich hoffe, die Beispiele und Anweisungen in diesem Artikel sind hilfreich, damit Sie diese Funktion in Ihrem Projekt anwenden können.