我正在研究 PGP 对称密钥(密码),应使用以下选项来加密文件,
- 对称密钥算法应为 9 (AES-256)
- 压缩算法应为 0(未压缩)
- 哈希算法应为 8 (SHA-256)
- 密码:服务器密钥与随机的 256 位客户端密钥组合
- S2k 数量:65535
- 文件名:任何非空值(通常是 FileId + PartNumber)
- 模式: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