【问题标题】:Validate crypted file with public key使用公钥验证加密文件
【发布时间】:2015-09-25 01:42:03
【问题描述】:
我在主机中有一台带有 gnupg 模块的服务器,一切正常。用户可以用我的公钥加密消息(这个过程应该在本地进行,而不是在服务器中)并将这些消息上传到我的服务器中。我想验证“文件”是用我的公钥加密的
用户输入类似的内容,然后他们将文件上传到我的服务器。
gpg --encrypt --recipient 12345678 file.txt
我不想在这个服务器上共享我的私钥,所以我无法验证我是否可以解密。我的问题是,我可以验证哪个文件是用我自己的公钥加密的吗??
对不起我的英语
【问题讨论】:
标签:
public-key-encryption
gnupg
【解决方案1】:
使用 gpg --decrypt 但不要提供你的私钥,gpg 会告诉你所有加密的密钥:
wwalker@hatter:~$ gpg --decrypt foo.asc
You need a passphrase to unlock the secret key for
user: "Wayne Walker (Ruby Hacker) <wwalker@bybent.com>"
4096-bit ELG-E key, ID 39D0C3D7, created 2007-12-31 (main key ID A62B624A)
gpg: cancelled by user
gpg: encrypted with 1024-bit ELG-E key, ID 70DAE878, created 2015-10-15
"Puppet Vault (Used for targeted secrets exchanges) <puppet@pumhost2.lbl.gov>"
gpg: encrypted with 1024-bit ELG-E key, ID 9426026B, created 2015-10-15
"Puppet Vault (Used for targeted secrets exchanges) <puppet@jenkins.lbl.gov>"
gpg: encrypted with 4096-bit ELG-E key, ID 39D0C3D7, created 2007-12-31
"Wayne Walker (Ruby Hacker) <wwalker@bybent.com>"
gpg: public key decryption failed: bad passphrase
gpg: decryption failed: secret key not available
如果您已经在使用 gpg-agent 并且您的密钥已经在代理中:
(unset GPG_AGENT_INFO; gpg --decrypt foo.asc)