如何仅使用会话密钥解密消息?

信息安全 pgp gnupg 解密
2021-09-03 14:33:57

我可以使用 option 查看加密数据的会话密钥gpg --show-session-key <file>
知道会话密钥,我如何在不使用我的私钥的情况下解密数据?

1个回答

要为收件人加密文件:

$ gpg -ea -r foo@example.com < file > file.gpg

当您拥有收件人的私钥时,要获取加密文件的会话密钥:

$ gpg --show-session-key < file.gpg
...
gpg: session key: `9:901D6ED579AFF935F9F157A5198BCE48B50AD87345DEADBA06F42C5D018C78CC'
...

要使用此会话密钥来解密文件,而不需要私钥:

$ gpg --override-session-key 9:901D6ED579AFF935F9F157A5198BCE48B50AD87345DEADBA06F42C5D018C78CC -d < file.gpg

只需查看 gpg 的手册页即可获得此信息:

--show-session-key
   Display the session key used for one message. 
   See --override-session-key for the counterpart of this option
   ...
--override-session-key string
  Don't use the public key but the session key string.