public-key-encryption - 如何使用命令行使用 PGP 制作和验证签名
问题描述
我找不到任何使用 PGP 签名和验证文件的好例子,我希望下面的例子有用。我将使用 Bob 和 Alice 来解释它。
1 .Bob 在他的机器上安装 Alice 的 PGP 公钥:
$ gpg --import <Key_Alice>-pub-sub.asc
2 .Alice 使用她的 PGP 私钥对文档 (TestMessage.txt) 进行签名和加密:
$ gpg --output TestMessageSignedByAlice.txt -a --sign ./TestMessage.txt
--output : 将输出写入 FILE (TestMessageSignedByAlice.txt)
-a, --armor : 输出文件应为 ascii 格式
--sign :要签名和加密的文档(TestMessage.txt)
结果是 Alice 使用她的 PGP 私钥签名和加密的文档 (TestMessageSignedByAlice.txt)。
3 . 最后,Bob 验证 Alice 的签名文件并使用 Alice 的 PGP 公钥解密文件。原始文档内容将在文档 TestMessageDecrypt.txt 中找到。
$ gpg --output TestMessageDecrypt.txt --decrypt ./TestMessageSignedByAlice.txt
--decrypt:验证签名和解密的文件(TestMessageSignedByAlice.txt)
--output : 将输出写入 FILE (TestMessageDecrypt.txt)
解决方案
它的工作方式有点不同:
- Alice 使用她的秘密(私有)密钥签署文件,并使用 Bob 的公钥加密文件。
- Bob 使用他的秘密(私有)密钥来解密文档,然后使用 Alice 的公钥来验证签名。
推荐阅读
- python - 如何在两个向量之间生成一个随机向量?
- javascript - XMPP - 如何删除两个 jid 之间的所有消息,但仅限于一个用户?
- c# - 从移动设备将提货单推送到结账终端
- node.js - 如何在 NodeJS 中对 MySQL 数据库进行异步调用
- javascript - TypeError:req.body.forEach 不是函数
- c# - 开始x数量的线程
- flutter - Flutter:NoSuchMethodError 仅在 Android 上
- docker - 基于 Kubernetes 服务的 HTTP 标头的一致性哈希
- authentication - 如何根据用户是否登录启用/禁用元素?
- node.js - 当我尝试 npm start 时发生此错误