@RedSs

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

Как на golang создать запароленный архив?
  • Вопрос задан
  • 117 просмотров
Решения вопроса 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
Взято с официальной документации (от сюда).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Fastdev AB Ижевск
До 110 000 руб.
Devmasterz Санкт-Петербург
от 3 000 usd.
OTUS Москва
от 40 000 до 100 000 руб.
19 марта 2019, в 10:33
20000 руб./за проект
19 марта 2019, в 10:19
500 руб./за проект