Heim >Backend-Entwicklung >Golang >Wie entpacke ich passwortgeschützte ZIP-Dateien in Go 1.2?

Wie entpacke ich passwortgeschützte ZIP-Dateien in Go 1.2?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 09:09:03593Durchsuche

How to Unzip Password-Protected ZIP Files in Go 1.2?

Passwortgeschützte ZIP-Dateien in Go 1.2 entpacken

Das Archiv-/Zip-Paket in Go 1.2 bietet grundlegende Funktionen für den Umgang mit ZIP-Archiven, fehlt jedoch Unterstützung für Passwortschutz. Um eine durch ein Passwort geschützte ZIP-Datei zu entpacken, kann man das Paket os/exec verwenden, um ein externes Tool wie 7zip aufzurufen.

Befolgen Sie dazu diese Schritte:

  1. Erstellen Sie eine passwortgeschützte ZIP-Datei:Erstellen Sie eine Beispiel-ZIP-Datei mit dem 7zip-Tool und geben Sie das Passwort und den Verschlüsselungsalgorithmus an:
7za a sample.zip name.txt -p"your_password" -mem=AES256
  1. Extrahieren die ZIP-Datei mit Passwort:Verwenden Sie den folgenden Code, um die passwortgeschützte ZIP-Datei zu extrahieren:
<code class="go">import (
    "fmt"
    "os/exec"
)

func extractZipWithPassword() {
    fmt.Printf("Unzipping `%s` to directory `%s`\n", zip_path, extract_path)
    commandString := fmt.Sprintf(`7za e %s -o%s -p"%s" -aoa`, zip_path, extract_path, zip_password)
    commandSlice := strings.Fields(commandString)
    fmt.Println(commandString)
    c := exec.Command(commandSlice[0], commandSlice[1:]...)
    e := c.Run()
    checkError(e)
}</code>

In diesem Codeausschnitt:

  • zip_path ist der Pfad zur passwortgeschützten ZIP-Datei.
  • extract_path ist der Pfad zu dem Verzeichnis, in dem die extrahierten Dateien gespeichert werden.
  • zip_password ist das Passwort für die ZIP-Datei.
  1. Beispielprogramm:Verwenden Sie das folgende vollständige Beispielprogramm, um den Prozess zu demonstrieren:
<code class="go">// Shows how to extract an passsword encrypted zip file using 7zip.
// By Larry Battle <https://github.com/LarryBattle>
// Answer to http://stackoverflow.com/questions/20330210/golang-1-2-unzip-password-protected-zip-file
// 7-zip.chm - http://sevenzip.sourceforge.jp/chm/cmdline/switches/index.htm
// Effective Golang - http://golang.org/doc/effective_go.html
package main

import (
    "fmt"
    "os"
    "os/exec"
    "path/filepath"
    "strings"
)

// ...

func main() {
    // ...
    extractZipWithPassword()
    // ...
}</code>
  1. Führen Sie das Programm aus: Kompilieren Sie das Beispielprogramm und führen Sie es aus:
go run main.go

Das Programm extrahiert die passwortgeschützte ZIP-Datei in das angegebene Verzeichnis.

Das obige ist der detaillierte Inhalt vonWie entpacke ich passwortgeschützte ZIP-Dateien in Go 1.2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn