Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Nyahzip Fail ZIP yang Dilindungi Kata Laluan dalam Go 1.2?

Bagaimana untuk Nyahzip Fail ZIP yang Dilindungi Kata Laluan dalam Go 1.2?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 09:09:03592semak imbas

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

Menyahzip Fail ZIP Dilindungi Kata Laluan dalam Go 1.2

Pakej arkib/zip dalam Go 1.2 menyediakan fungsi asas untuk mengendalikan arkib ZIP tetapi kekurangan sokongan untuk perlindungan kata laluan. Untuk menyahzip fail ZIP yang dilindungi oleh kata laluan, seseorang boleh menggunakan pakej os/exec untuk menggunakan alat luaran seperti 7zip.

Untuk berbuat demikian, ikut langkah berikut:

  1. Buat Fail ZIP Dilindungi Kata Laluan: Buat sampel fail ZIP menggunakan alat 7zip, nyatakan kata laluan dan algoritma penyulitan:
7za a sample.zip name.txt -p"your_password" -mem=AES256
  1. Ekstrak Fail ZIP dengan Kata Laluan: Gunakan kod berikut untuk mengekstrak fail ZIP yang dilindungi kata laluan:
<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>

Dalam coretan kod ini:

  • zip_path ialah laluan ke fail ZIP yang dilindungi kata laluan.
  • extract_path ialah laluan ke direktori tempat fail yang diekstrak akan disimpan.
  • zip_password ialah kata laluan untuk fail ZIP.
  1. Contoh Program: Gunakan program contoh lengkap berikut untuk menunjukkan proses:
<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. Jalankan Program: Susun dan jalankan program contoh:
go run main.go

Atur cara akan mengekstrak fail ZIP yang dilindungi kata laluan ke direktori yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Nyahzip Fail ZIP yang Dilindungi Kata Laluan dalam Go 1.2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn