【问题标题】:I can't seem to get golang's openpgp library to compress my output我似乎无法让 golang 的 openpgp 库压缩我的输出
【发布时间】:2020-01-18 01:38:32
【问题描述】:

我在使用 Golang 的 openpgp 库进行压缩时遇到问题。我正在尝试加密和压缩超过 2G 的文件,所以我正在使用文件缓冲区,即使这是一种可怕的做法。我的一个sn-p代码如下:

    newPath := path + ".gpg"

    // encrypt string
    fBuf, err := os.OpenFile(newPath, os.O_WRONLY|os.O_CREATE, 0644)
    defer fBuf.Close()
    if err != nil {
        return "", err
    }

    wc, err := openpgp.Encrypt(fBuf, entityList, nil, nil, pgpConfig)
    defer wc.Close()
    if err != nil {
        return "", err
    }

    r, err := os.OpenFile(path, os.O_RDONLY, 0644)
    defer r.Close()
    if err != nil {
        return "", err
    }

    if _, err := io.Copy(wc, r); err != nil {
          return "", err
    }

pgpConfig的定义如下:

var pgpConfig = &packet.Config{
  DefaultCompressionAlgo: packet.CompressionZLIB,
  CompressionConfig: &packet.CompressionConfig{
    Level: 6,
  },
}

目前,加密和解密完全按照预期工作,但绝对没有压缩。我尝试过导入 zlib 库并直接使用它,但没有运气......再次,加密和解密工作,但没有压缩。任何帮助将不胜感激!

谢谢!

【问题讨论】:

    标签: go zlib openpgp


    【解决方案1】:

    这是一个错误:

    OpenPGP 包被冻结,不接受修复。这是一个公关:

    这不是库认可,但我使用 ProtonMail OpenPGP 并处理压缩。

    https://github.com/ProtonMail/go-crypto

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多