使用 GnuPG 對檔案加密與解密

使用多人共用的伺服器時不應該將機敏性檔案長置在上面,但是每次需要使用時都要重新上傳的話又有點麻煩。如果需要多次使用機敏性檔案,將檔案加密後供日後使用不失為一個好方法。能夠實現的工具非常多種,這邊使用 GnuPG 作為例子。

安裝

GnuPG 在 Ubuntu 為預設安裝,如果未安裝的話執行以下安裝指令即可。

1
sudo apt install gnupg -y

加密

使用 gpg -c 進行加密,會跳出提示輸入密碼

1
2
3
4
5
6
7
# 新增一個文字檔
echo 'caloskao.org' > my-file.txt

# 對文字檔加密
gpg -c my-file.txt
gpg: gpg-agent is not available in this session
Enter passphrase:

輸入兩次密碼後會產生額外一個加密後的檔案,檔名以 .gpg 結尾

1
2
-rw-rw-r-- 1 calos calos  13 2019-09-17 11:05:02 my-file.txt
-rw-rw-r-- 1 calos calos  94 2019-09-17 11:05:12 my-file.txt.gpg

解密

使用 gpg -d 進行解密

1
2
3
4
gpg -d my-file.txt.gpg
gpg: AES encrypted data
gpg: gpg-agent is not available in this session
Enter passphrase:

解密完成後會提示檔案已解密,並顯示解密後的檔案內容

1
2
gpg: encrypted with 1 passphrase
caloskao.org

可以搭配參數 -o 直接將解密後的內容輸出至檔案

1
2
3
4
5
6
gpg -o my-file.txt.decryped my-file.txt.gpg
gpg: AES encrypted data
gpg: gpg-agent is not available in this session
gpg: encrypted with 1 passphrase
cat my-file.txt.decryped
caloskao.org

參數 -c-d對稱式加解密,如需追求更強的加密強度,請使用 非對稱式加密(亦稱為公開金鑰加密)。


References:

comments powered by Disqus