Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Nyahzip Fail ZIP yang Dilindungi Kata Laluan dalam 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:
7za a sample.zip name.txt -p"your_password" -mem=AES256
<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:
<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>
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!