我正在使用Python腳本和pysftp模塊連接到SFTP服務器。如何在Python pysftp中加密密碼?
顯然,我可以通過一個SFTP密碼明確,我不喜歡。
我的問題:我怎麼能對加密的一個,以避免有人從可見的世界替換密碼?
我正在使用Python腳本和pysftp模塊連接到SFTP服務器。如何在Python pysftp中加密密碼?
顯然,我可以通過一個SFTP密碼明確,我不喜歡。
我的問題:我怎麼能對加密的一個,以避免有人從可見的世界替換密碼?
我發現了這個問題的解決方案。這個對我有用。 而不是使用密碼的顯式文本,我首先編碼它,並把劇增的形式放入腳本。
像這樣:
import base64
## To encrypt:
base64.b64encode("XYZ")
## you got 'WFla'
## To decrypt:
base64.b64decode("WFla")
# you got 'XYZ'
你的意思是你不想要的密碼是在代碼或配置文件可見?無法以允許自動解密的方式對任何內容進行加密。你所能做的只是混淆密碼,但並不真正加密密碼。如果任何人都可以訪問你的代碼,他/她總是可以對你的「加密」進行逆向工程。
保持密鑰和密碼,以世界不可見的標準方法是不把它們存放的地方世界可讀。這通常意味着不要將它們放入腳本中,而是配置文件(例如netrc),這些文件又被設置爲只能由您讀取。更現代的選擇是keyring服務,如kwallet。
此外,SSH(及其子協議SFTP)支持認證使用不對稱密鑰加密。通過使用authentication agent,您可以將這些密鑰保存在單獨的進程中,因此您的腳本不需要解密或存儲它們的功能。
兩個SSH代理和鑰匙圈服務支持加密密鑰存儲本身,但是否這樣做(何)是從從他們請求鍵程序隱藏。如果您使用的SFTP
密碼應該是不可見的*上線*。無論如何,在某些時候,您需要知道未加密的密碼才能對其進行加密。 – monkut 2014-09-26 01:08:36