如何在Python pysftp中加密密码?
问题描述:
我正在使用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