>  기사  >  백엔드 개발  >  Go 1.2에서 비밀번호로 보호된 ZIP 파일의 압축을 푸는 방법은 무엇입니까?

Go 1.2에서 비밀번호로 보호된 ZIP 파일의 압축을 푸는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 09:09:03482검색

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

Go 1.2에서 비밀번호로 보호된 ZIP 파일 압축 해제

Go 1.2의 archive/zip 패키지는 ZIP 아카이브 처리를 위한 기본 기능을 제공하지만 부족합니다. 비밀번호 보호를 지원합니다. 비밀번호로 보호된 ZIP 파일의 압축을 풀려면 os/exec 패키지를 활용하여 7zip과 같은 외부 도구를 호출할 수 있습니다.

이렇게 하려면 다음 단계를 따르세요.

  1. 비밀번호로 보호된 ZIP 파일 만들기: 7zip 도구를 사용하여 비밀번호와 암호화 알고리즘을 지정하여 샘플 ZIP 파일 만들기:
7za a sample.zip name.txt -p"your_password" -mem=AES256
  1. 추출 비밀번호가 포함된 ZIP 파일: 다음 코드를 사용하여 비밀번호로 보호된 ZIP 파일을 추출합니다.
<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>

이 코드 조각에서:

  • zip_path는 비밀번호로 보호된 ZIP 파일의 경로입니다.
  • extract_path는 추출된 파일이 저장될 디렉터리의 경로입니다.
  • zip_password는 ZIP 파일의 비밀번호입니다.
  1. 예제 프로그램: 다음 전체 예제 프로그램을 사용하여 프로세스를 보여줍니다.
<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. 프로그램 실행: 예제 프로그램을 컴파일하고 실행합니다.
go run main.go

프로그램은 비밀번호로 보호된 ZIP 파일을 지정된 디렉토리에 추출합니다.

위 내용은 Go 1.2에서 비밀번호로 보호된 ZIP 파일의 압축을 푸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.