2014-09-11 86 views
2

如何從命令行使用gpg加密給定的字符串? 我有公鑰存儲在一個名爲pubkey.pub 的文件中我以爲我可以簡單地用它來做。如何使用GnuPG加密字符串?

gpg --import "path/to/pubkey.pub" --encrypt "my string to encrypt" 

但是這不起作用。

背景:我必須使用PHP exec命令來加密給定的文本,因爲我沒有在服務器上安裝PHP模塊本身。

回答

3

gpg同時加密,從而運行

echo "my string to encrypt" | gpg --encrypt 

gpg --import進口關鍵材料到的GnuPG的密鑰存儲,它仍然從標準輸入讀取;因此您只需調用一次(這是一個相當慢的操作,因爲它可能會觸發更新您的信任數據庫)。

+0

這是一個易於記憶的命令,用於加密,標記和回顯ascii在終端中:'echo'我的字符串進行加密「| gpg -aes'注意:您可以在開始時添加一個空格,以便私人數據不會添加到bash歷史記錄中。 – 2017-04-16 13:30:10

+1

如果您想阻止其他用戶看到它,請注意,對於GnuPG正在運行(儘管可能很短)的時間,其他用戶將能夠讀取該字符串。如果你想防止這種情況,最好使用'gpg -aes << EOT'或類似的結構來讀取STDIN。 – 2017-04-16 14:45:41