如何在Python pysftp中加密密码?

时间:2014-09-25 21:47:12

标签: python encryption sftp pysftp

我正在使用带有pysftp模块的Python脚本连接到SFTP服务器。

显然我可以明确传递一个我不喜欢的SFTP密码。

我的问题:如何更换加密密码以避免某人被世界看到?

3 个答案:

答案 0 :(得分:0)

您的意思是您不希望密码在代码或配置文件中可见吗?没有办法以允许自动解密的方式加密任何东西。您所能做的就是对密码进行模糊处理,但不对其进行真正的加密。如果任何人都可以访问您的代码,他/她可以随时对您的加密进行逆向工程。#34;。

答案 1 :(得分:0)

保持密钥和密码对世界不可见的标准方法不是将它们存储在世界可读的地方。这通常意味着不要将它们放在脚本中,而是配置文件,例如netrc,而这些文件又设置为只能由您读取。更现代的替代方案是keyring服务,例如kwallet。

此外,SSH(及其子协议SFTP)支持使用不对称密钥加密进行身份验证。通过使用authentication agent,您可以将这些密钥保存在单独的进程中,因此您的脚本无需首先解密或存储它们。

SSH代理和密钥环服务都支持对密钥存储本身进行加密,但这是否已从请求密钥的程序中隐藏(以及在哪里)。

答案 2 :(得分:-1)

我找到了解决这个问题的方法。这个对我有用。 我没有使用密码的显式文本,而是首先对其进行编码并将编码后的表单放入脚本中。

像这样:

import base64

## To encrypt:
base64.b64encode("XYZ")
## you got 'WFla'

## To decrypt:
base64.b64decode("WFla")
# you got 'XYZ'