Gpg
為什麼 gpg 不需要我們指定加密和解密的密鑰?
GNU 隱私手冊說:
命令行選項 –sign 用於進行數字簽名。輸入要簽名的文件,輸出簽名的文件。
alice% gpg --output doc.sig --sign doc You need a passphrase to unlock the private key for user: "Alice (Judge) <alice@cyb.org>" 1024-bit DSA key, ID BB7576AC, created 1999-06-04 Enter passphrase:
為什麼它不詢問要使用哪個私鑰?執行命令的使用者不能持有多個私鑰嗎?
通過使用 –symmetric 選項,可以使用對稱密碼對文件進行加密。
alice% gpg --output doc.gpg --symmetric doc Enter passphrase:
gpg 是否使用密碼對輸入文件進行對稱加密?還是僅使用密碼來訪問將用於對稱加密輸入文件的密鑰?如果是後者,為什麼不詢問要使用哪個密鑰進行對稱加密?使用者不能持有多個可用於對稱加密的密鑰嗎?
解密對稱加密文件時,
alice% gpg --descrypt doc.gpg
將會成功。為什麼它不要求輸入密碼(以及解密的密鑰)?
doc.gpg
我把它交給他們後,其他人怎麼能解密 ?謝謝。
如果兩者都沒有指定, GnuPG 將使用在密鑰環中找到的*第一個密鑰。*您還可以定義要使用的預設鍵
--default-user``--local-user
default-key KEYID
在
~/.gnupg/gpg.conf
.對稱加密不涉及任何公鑰或私鑰。您輸入的密碼用於加密和解密消息(因此是“對稱的”)。
在您的範例中,解密時不會要求您輸入密碼,因為該
gpg-agent
程序已記憶體您在加密消息時使用的密碼。如果您終止代理並再次嘗試解密消息,系統會要求您輸入密碼。如果您共享您的
doc.gpg
文件並且如果它使用對稱加密進行加密,您還需要以某種方式共享密碼以使收件人能夠解密消息。任何擁有密碼的人都可以解密該消息。當使用帶有簽名的密鑰加密時,共享您的公鑰(用於驗證簽名)就足夠了。如果沒有簽名,您就不必共享您的密鑰。使用密鑰加密,消息將為一個或多個特定收件人加密,因此您需要擁有他們的公鑰來執行加密。如果無法訪問特定收件人的私鑰,則無法解密消息。