Python
最佳 PGP/GPG 加密/解密腳本
是否有好的預設 python 或簡單的 shell 腳本可用於通過 PGP/GPG 加密和解密文件?我將每 5 分鐘執行一次此腳本。
您不想要對稱密碼
如果您需要自動執行加密,您不想使用帶有密碼的對稱密碼(這就是gpg -ac所做的)。將密碼儲存在腳本或 cron 中是不可接受且毫無意義的(說真的,這聽起來很刺耳,但您不妨 rot13 它。)
如果您使用加密,僅僅“更改腳本的權限”是不夠的。如果是,您可以簡單地更改要隱藏的數據的權限。此級別的加密顯然是為了阻止已獲得您帳戶訪問權限(很可能是惡意)的人在獲得訪問權限後讀取數據。
在這種情況下,您需要的是公鑰密碼術。您生成一個私鑰(使用帶有密碼的對稱密碼再次加密)和一個公鑰。公鑰可以分發到任何地方。任何人都可以加密您可以使用您的私鑰讀取的數據。沒有人應該有權訪問您的私鑰。因此,對於您需要的加密類型,它是完美的。您可以將您的公鑰儲存在伺服器上,並使用它加密您的所有數據。如果攻擊者擁有您的公鑰和加密數據,他將無能為力。
您的私鑰應該是潛在攻擊者總是失去的難題。你需要隱藏這個。即加密您可以讀取的數據很容易。解密它應該很難。使用對稱密碼,兩者的難度是相同的(如果你想用這些術語來考慮它,它可能不是最好的類比。)
GPG 使公共加密相對輕鬆,但首先,您需要生成一個密鑰對(這不是在您的伺服器上完成,而是在您的桌面或安全的地方,您很高興擁有您的私鑰):
$ gpg --gen-key
瀏覽那裡的問題。
然後,您要導出 GPG 公鑰並將其複制並粘貼到您的伺服器:
$ gpg --list-keys $ gpg --armor --export me@mydomain.com > pub.key
將 pub.key 複製到您的伺服器,然後使用以下命令導入:
$ gpg --import pub.key
如果您首先考慮使用加密,那顯然是因為您有敏感數據。我要再次強調:您需要認真考慮加密這些數據的方式,因為如果您只是使用可以輕鬆訪問密碼的對稱密碼,那麼您將付出很多努力卻沒有收穫。