如何傳送敏感資訊 - GnuPG

如果你覺得現有的 Email 服務不夠安全,或者你需要在不安全的網路環境中傳送加密的訊息,那麼 GnuPG 就是你的好幫手

在本文中,將介紹如何使用 GnuPG 來產生公私鑰,並且來加解密敏感訊息。可以讓我們在不安全的網路環境中,傳送和接收加密的訊息,保護隱私和安全

安裝 GnuPG

首先,我們要先安裝 GnuPG

macOS

透過 brew 來安裝

1
brew install gnupg

Linux

透過 apt 來安裝

1
sudo apt install gnupg

Windows

你可以在官網下載執行檔案
https://gnupg.org/index.html

產生公私鑰

接下來,我們要產生公私鑰
如果你想要針對演算法做更多的設定,可以使用 --full-generate-key 參數來產生

1
gpg --full-generate-key
image 68 基本上就是選擇你想要的演算法,然後輸入你的密碼,最後輸入你的名字和 Email

不過建議是選用 ECC 演算法,因為它比 RSA 演算法更快,而且安全性也更高
如果不知道怎麼選,那就保持最新版本的 GnuPG 預設的選項就好

列出金鑰

接下來,我們要列出金鑰,確認有產生成功

1
gpg --list-keys
image 69

遮起來的第二行就是 key 的 uid

匯出公鑰

接下來,我們要匯出公鑰,讓別人可以透過公鑰來加密訊息
在這裏你可以擇一使用 uid, username, email 指定公鑰匯出

1
gpg --armor --export [uid | name | email]
image 70

接下來,我們就可以把公鑰複製下來,並且傳送給別人或者放在 Email 簽名檔中

或者跟我一樣,把公鑰放在 GitHub 上
https://github.com/pttCodingMan.gpg

加解密訊息

現在我們可以來加解密訊息了

匯入公鑰

接下來,有了別人的公鑰,像是這個 https://github.com/pttCodingMan.gpg
別人就可以透過這個公鑰來加密訊息傳送給我

但在加密之前,我們要先匯入別人的公鑰

以我自己的 pttCodingMan.gpg 為例,下載之後,我們可以透過下面的指令來匯入公鑰

1
gpg --import pttCodingMan.gpg

加密訊息

接下來,我們要使用剛剛匯入的公鑰來加密訊息,並且使用 --armor 參數來輸出 ASCII 格式的訊息

1
echo "Hello World" | gpg --encrypt --armor --recipient [uid | name | email]

這樣就可以把訊息加密了,可以看到輸出了一段加密後的 ASCII 文字

如果你想要把檔案加密,可以配合使用 --output 參數來輸出

1
gpg --encrypt --armor --recipient [uid | name | email] --output [encrypted_file] [msg_file]

解密訊息

接下來要來解密訊息,而這個加密過的訊息,只有持有與公鑰相對應私鑰的人才能解密訊息

1
gpg --decrypt [file]
image 71

這樣就可以解密訊息了,我們可以看到解密後的內容是 Hi, my name is CodingMan.

結論

GnuPG 是一個強大且免費的工具,可以用來加密和解密敏感訊息,保護隱私和安全。通過產生公私鑰、匯出公鑰和私鑰、加密和解密訊息等步驟,我們可以在不安全的網路環境中安全地傳送和接收加密的訊息

希望這篇文章對於你如何使用 GnuPG 傳送敏感資訊有所幫助 😃

也許你也會想看看