@RedSs

Как на golang создать запароленный архив?

Как на golang создать запароленный архив?
  • Вопрос задан
  • 359 просмотров
Решения вопроса 1
REKTOR_RG
@REKTOR_RG
contents := []byte("Hello World")

// write a password zip
raw := new(bytes.Buffer)
zipw := zip.NewWriter(raw)
w, err := zipw.Encrypt("hello.txt", "golang")
if err != nil {
    log.Fatal(err)
}
_, err = io.Copy(w, bytes.NewReader(contents))
if err != nil {
    log.Fatal(err)
}
zipw.Close()

А вот так можно читать архив с паролем [спойлер]
// read the password zip
zipr, err := zip.NewReader(bytes.NewReader(raw.Bytes()), int64(raw.Len()))
if err != nil {
    log.Fatal(err)
}
for _, z := range zipr.File {
    z.SetPassword("golang")
    rr, err := z.Open()
    if err != nil {
        log.Fatal(err)
    }
    _, err = io.Copy(os.Stdout, rr)
    if err != nil {
        log.Fatal(err)
    }
    rr.Close()
}

Создаст архив в формате .zip с файлом hello.txt и паролем golang
Взято с официальной документации (от сюда).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы