如何使用以下选项加密 PGP 对称密钥(密码)?

如何使用以下选项加密 PGP 对称密钥(密码)?

我正在研究 PGP 对称密钥(密码),应使用以下选项来加密文件,

  1. 对称密钥算法应为 9 (AES-256)
  2. 压缩算法应为 0(未压缩)
  3. 哈希算法应为 8 (SHA-256)
  4. 密码:服务器密钥与随机的 256 位客户端密钥组合
  5. S2k 数量:65535
  6. 文件名:任何非空值(通常是 FileId + PartNumber)
  7. 模式:b (62)

我想使用上述选项加密文件。我试过了,它能正常工作,但不知何故它没有创建正确的加密文件。

我正在使用第三方集成,它要求我使用上述选项加密文件,当我尝试在他们的终端解密文件时,它失败了。所以我知道选项有问题。

gpg --passphrase 'Test' --s2k-digest-algo SHA256 --cipher-algo AES256 --compress-algo 0 --s2k-count 65535 -e -r "Test" sample.csv

这是正确的吗?有人能告诉我正确的选项吗?

答案1

对称密钥算法应为 9 (AES-256)

使用选项--cipher-algo AES256--cipher-algo S9

压缩算法应为 0(未压缩)

使用选项--compress-algo Uncompressed--compress-algo Z0

哈希算法应为 8 (SHA-256)

使用选项--s2k-digest-algo SHA256--s2k-digest-algo H8

密码:服务器密钥与随机的 256 位客户端密钥组合

要在命令行中包含此值,请使用选项--pinentry-mode loopback --passphrase 'ServerSecret+ClientSecret'。否则,只需在 Pinentry 提示符下输入密码即可。

S2k 数量:65535

使用选项--s2k-count 65535

文件名:任何非空值(通常是 FileId + PartNumber)

使用选项--output FileIDPartNumber

模式:b (62)

“b” 表示二进制(62 是字母“b”的十六进制代码值)。这指的是数据格式是二进制而不是文本。默认情况下它将是二进制,因此您不需要做任何特殊的事情来满足此条件(唯一会搞砸这一点的方法是使用选项--textmode)。

gpg --passphrase 'Test' --s2k-digest-algo SHA256 --cipher-algo AES256 --compress-algo 0 --s2k-count 65535 -e -r "Test" sample.csv

它是否正确?

不,如果您想要对称加密,则不需要使用-e或。在命令行中输入密码时,-r您还需要使用。--pinentry-mode loopback

类似这样的操作应该会生成一个根据给定规范加密的文件:

gpg --output FileIDPartNumber --pinentry-mode loopback --passphrase 'ServerSecret+ClientSecret' --cipher-algo S9 --compress-algo Z0 --s2k-digest-algo H8 --s2k-count 65535 --symmetric sample.csv

相关内容