【问题标题】:Using PGP in golang在 golang 中使用 PGP
【发布时间】:2016-05-12 11:39:01
【问题描述】:

我正在尝试使用 golang 中的 openPGP 包加密字符串,但到目前为止我还没有成功。

到目前为止,我尝试过的所有方法都不起作用,因此我正在寻找任何建议或修复方法。

我唯一的要求是它应该将公钥/私钥和字符串解密为字符串,而不是文件。

我尝试使用这篇文章中的示例:http://julianyap.com/2014/07/04/gnu-privacy-guard-gpg-examples-using-golang.html

具体是这个例子:https://gist.github.com/jyap808/8324818

但是当我开箱即用时,它会在尝试读取密钥时显示以下内容

openpgp: invalid argument: no armored data found

而且我没有找到其他好的示例/工作包。

我开始用尽选项,因为我最初尝试在 PHP 中执行此操作,但在那里也失败了。如果有人能提供一些建议,那就太好了!

提前致谢

【问题讨论】:

  • 如果我记得,用 gpg armor 指示系统使用特殊的 ASCII 形式的键。使用有关您如何使用盔甲以及如何生成密钥的相关代码更新您的问题(使用--armor 选项,对吗?)。
  • 我使用的是实际示例,没有更改任何内容。所以我猜它应该可以工作,但我会尝试使用 Armor 选项生成一个密钥。
  • Okey,所以我可以使用自己的密钥成功生成消息,但是,我无法使用我尝试过的任何在线服务来解密它们,它根本不起作用。我猜这是因为我需要某些 PGP 标头,但我不确定具体要使用什么。尝试只复制一些通用的,但它不起作用。
  • 你是用公钥加密,用私钥解密吗?
  • lol 感觉这里差点被人攻击了,还以为自己是菜鸟,虽然明白是要一一排除问题。是的,用于加密的公钥和用于解密的私钥,但是返回的字符串没有标题,所以我尝试粘贴通用的标题以便能够解密它,但可惜没有成功

标签: go openpgp


【解决方案1】:

这是一个用于 Golang 的 PGP 包,它消除了大部分复杂性并且非常易于使用:

https://github.com/jchavannes/go-pgp

查看测试文件以获取示例:

https://github.com/jchavannes/go-pgp/blob/master/pgp/encrypt_test.go

【讨论】:

  • 感谢您的回复,这将派上用场!等待接受答案,直到我测试了包
  • 酷!我最近将它用于其他不起作用的东西。它假定了许多可能不适用于所有情况的默认设置。如果遇到问题,您可能需要深入研究一下源代码,它是一个非常薄的包装器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 2022-06-24
  • 2015-05-14
相关资源
最近更新 更多