GNU 隐私手册说:
命令行选项--sign用于进行数字签名。输入要签名的文档,输出签名的文档。
alice% gpg --output doc.sig --sign doc You need a passphrase to unlock the private key for user: "Alice (Judge) <[email protected]>" 1024-bit DSA key, ID BB7576AC, created 1999-06-04 Enter passphrase:
为什么它不询问要使用哪个私钥?运行命令的用户不能持有多个私钥吗?
可以使用 --symmetry 选项使用对称密码对文档进行加密。
alice% gpg --output doc.gpg --symmetric doc Enter passphrase:
gpg 是否使用密码对输入文件进行对称加密?或者它是否使用密码只是为了访问将用于对称加密输入文件的密钥?如果是后者,为什么它不询问对称加密使用哪个密钥?用户不能拥有多个可用于对称加密的密钥吗?
当解密对称加密文件时,
alice% gpg --descrypt doc.gpg
将会成功。为什么它不要求输入密码(以及解密密钥)?doc.gpg
我给别人之后如何解密 ?
谢谢。
答案1
GnuPG 将使用第一的--default-user
如果既没有指定也没有指定,则在秘密密钥环中找到密钥--local-user
。您还可以定义要使用的默认键
default-key KEYID
在~/.gnupg/gpg.conf
。
对称加密确实不是涉及任何公钥或私钥。您输入的密码用于加密和解密消息(因此是“对称”)。
在您的示例中,解密时不会要求您提供密码,因为该gpg-agent
进程已缓存您在加密消息时使用的密码。如果您终止代理并尝试再次解密消息,系统会要求您提供密码。
如果您共享doc.gpg
文件并且其加密方式为对称的加密,您还需要以某种方式共享密码,以使收件人能够解密邮件。任何拥有密码的人都可以解密该消息。
当使用密钥加密和签名时,共享您的公钥(用于验证签名)就足够了。如果没有签名,您就不必共享您的密钥。使用密钥加密,消息将被加密一个或多个具体的收件人,因此您需要拥有他们的公钥才能执行加密。无法访问私人的特定接收者的密钥,该消息将无法被解密。