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
Lepaskan: 2024-10-30 09:09:03
asal
591 orang telah melayarinya

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
Salin selepas log masuk
  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>
Salin selepas log masuk

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>
Salin selepas log masuk
  1. Jalankan Program: Susun dan jalankan program contoh:
go run main.go
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan