Чтение зашифрованного при помощи gpg -c файла в golang
У меня есть файл test.txt который я зашифровал при помощи gpg -c text.txt Можно ли в программе на языке go открыть такой файл и прочитать содержимое (пароль, конечно, мне известен)
Ответы (1 шт):
Автор решения: Pak Uula
→ Ссылка
Если вы зашифровали gpg -c, то в файле text.txt.gpg находится binary message. Его можно расшифровать средствами пакета github.com/ProtonMail/gopenpgp/v2/:
package main
import (
"fmt"
"io"
"log"
"os"
"github.com/ProtonMail/gopenpgp/v2/armor"
"github.com/ProtonMail/gopenpgp/v2/constants"
"github.com/ProtonMail/gopenpgp/v2/helper"
)
func main() {
gpgfile := "text.txt.gpg"
data := Must(io.ReadAll(Must(os.Open(gpgfile))))
pwd := "123"
armored := Must(armor.ArmorWithType(data, constants.PGPMessageHeader))
txt := Must(helper.DecryptMessageWithPassword([]byte(pwd), armored))
fmt.Println(txt)
}
func Must[T any](val T, err error) T {
if err != nil {
log.Fatal(err.Error())
}
return val
}
Результат работы программы:
Hello, world!
Это в точности содержимое файла text.txt