@RedSs

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

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

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

Войти через центр авторизации
Похожие вопросы
EVEN Foundation Москва
от 130 000 руб.
Xsolla Пермь
от 50 000 до 120 000 руб.
EVEN Foundation Москва
от 120 000 до 200 000 руб.
27 июн. 2019, в 01:26
50000 руб./за проект
27 июн. 2019, в 00:27
250000 руб./за проект