目標:使用 GPG 加密檔案
發行版:適用於任何發行版
要求:安裝了 GPG 的 Linux 或擁有 root 權限來安裝它。
難度:簡單
約定:
加密非常重要。它對於保護敏感資訊是必不可少的。你的私人文件應該要加密,而 GPG 提供了很好的解決方案。
#GPG 的使用非常廣泛。你在幾乎每個發行版的倉庫中都能找到它。如果你還沒有安裝它,那現在就來安裝一下吧。
Debian/Ubuntu
$ sudo apt install gnupg
Fedora
## dnf install gnupg2
Arch
## pacman -S gnupg
Gentoo
## emerge --ask app-crypt/gnupg
你需要一個金鑰對來加解密檔案。如果你已經為 SSH 產生過了金鑰對,那麼你可以直接使用它。如果沒有,GPG 包含工具來產生金鑰對。
$ gpg --full-generate-key
GPG 有一個命令列程式可以幫你一步一步產生的金鑰。它還有一個簡單得多的工具,但是這個工具不能讓你設定密鑰類型,密鑰的長度以及過期時間,因此不建議使用這個工具。
GPG 先會問你金鑰的類型。沒什麼特別的話選擇預設值就好。
下一步需要設定金鑰長度。 4096 是不錯的選擇。
之後,可以設定過期的日期。如果希望金鑰永不過期則設定為 0。
然後,輸入你的名稱。
最後,輸入電子郵件地址。
如果你需要的話,還能加上一個註解。
所有這些都完成後,GPG 會讓你校驗一下這些資訊。
GPG 也會問你是否需要為金鑰設定密碼。這一步是可選的, 但是會增加保護的程度。若需要設定密碼,則 GPG 會收集你的操作資訊來增加金鑰的健壯性。所有這些都完成後, GPG 會顯示與金鑰相關的資訊。
#現在你擁有了自己的金鑰,加密檔案非常簡單。使用下面的命令在 /tmp 目錄中建立一個空白文字檔案。
$ touch /tmp/test.txt
然後用 GPG 來加密它。這裡 -e 標誌告訴 GPG 你想要加密文件, -r 標誌指定接收者。
$ gpg -e -r "Your Name" /tmp/test.txt
GPG 需要知道這個檔案的接收者和發送者。由於這個文件給是你的,因此無需指定發送者,而接收者就是你自己。
#你收到加密檔案後,就需要對它進行解密。你無需指定解密用的金鑰。這個訊息被編碼在文件中。 GPG 會嘗試用其中的金鑰來解密。
$ gpg -d /tmp/test.txt.gpg
假设你需要发送文件给别人。你需要有接收者的公钥。 具体怎么获得密钥由你自己决定。 你可以让他们直接把公钥发送给你, 也可以通过密钥服务器来获取。
收到对方公钥后,导入公钥到 GPG 中。
$ gpg --import yourfriends.key
这些公钥与你自己创建的密钥一样,自带了名称和电子邮件地址的信息。 记住,为了让别人能解密你的文件,别人也需要你的公钥。 因此导出公钥并将之发送出去。
gpg --export -a "Your Name" > your.key
现在可以开始加密要发送的文件了。它跟之前的步骤差不多, 只是需要指定你自己为发送人。
$ gpg -e -u "Your Name" -r "Their Name" /tmp/test.txt
就这样了。GPG 还有一些高级选项, 不过你在 99% 的时间内都不会用到这些高级选项。 GPG 就是这么易于使用。你也可以使用创建的密钥对来发送和接受加密邮件,其步骤跟上面演示的差不多, 不过大多数的电子邮件客户端在拥有密钥的情况下会自动帮你做这个动作。
以上是使用 GPG 加密和解密文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!