【发布时间】:2018-12-02 20:35:51
【问题描述】:
我一直在尝试使用 GPG 公钥和 go 的 openpgp 库加密 docx 文件。它加密了文档,但我无法使用我的私钥对其进行解密。
已经尝试对纯文本文件做同样的事情,并且解密没有任何问题。
我在这里错过了什么?
package main
import (
"golang.org/x/crypto/openpgp"
"bytes"
"io/ioutil"
"fmt"
"os"
)
func main() {
entitylist, _ := openpgp.ReadArmoredKeyRing(bytes.NewBufferString(...))
buf := new(bytes.Buffer)
w, _ := openpgp.Encrypt(buf, entitylist, nil, nil, nil)
b, _ := ioutil.ReadFile("in.docx")
w.Write(b)
w.Close()
bts, _ := ioutil.ReadAll(buf)
ioutil.WriteFile("out.gpg", bts, os.ModePerm)
}
【问题讨论】:
-
您忽略了错误。更改代码以检查错误。
-
据我所知,您甚至在读取文件之前就对字节进行了加密。读入字节后,您必须对其进行加密。
标签: go encryption public-key-encryption gnupg