为什么我必须输入密码才能用自己的密钥加密文件?

为什么我必须输入密码才能用自己的密钥加密文件?

我创建了一个 4096 位、受密码保护的 RSA 密钥,用于开发工作。我的环境设置为,此密钥是我密钥环上唯一的私钥。当我尝试使用此密钥加密文件时,GPG 为什么会要求输入密码?GPG 不应该使用此密钥的公共版本来加密文件吗?如果不是,我该如何指示 GPG 使用密钥的公共版本来加密文件?我是否需要从我的私钥生成公钥,然后将其导入我的发布环?我该怎么做?

我宁愿不使用密码来加密我的文件,我只想使用密码来解密它们。

编辑:这是我使用的提示我输入密码的命令行。我已在工具中添加了代码来确定我们的私钥是否在收件人列表中,如果在,它将通过 StandardInput 传输密码,并将 --passphrase-fd 0 添加到行中。

gpg --output FileIn.txt.asc --batch --trust-model always --encrypt --sign --armor --recipient keyID1 --recipient privKeyID FileIn.txt

答案1

您不仅要加密文件,还要对文件进行签名。加密只需要访问公钥(公钥不受密码保护,因为它是公开的)。

签名基本上是反过来的:文件的校验和使用私钥加密,因此其他人(可以访问公钥)可以解密签名并验证它。

如果您想签署该文件,您将必须继续输入密码,或删除密码。

相关内容