Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python-pysftp中加密密码?_Python_Encryption_Sftp_Pysftp - Fatal编程技术网

如何在Python-pysftp中加密密码?

如何在Python-pysftp中加密密码?,python,encryption,sftp,pysftp,Python,Encryption,Sftp,Pysftp,我使用pysftp模块的Python脚本连接到SFTP服务器 显然,我可以明确地传递我不喜欢的SFTP密码 我的问题:如何将密码替换为加密密码,以避免有人在世界上可见?您的意思是不希望密码在代码或配置文件中可见吗?没有办法以允许自动解密的方式加密任何内容。您所能做的只是混淆密码,而不是真正加密密码。如果有人可以访问你的代码,他/她总是可以对你的“加密”进行反向工程 我找到了这个问题的解决方案。它对我有用。 我没有使用密码的显式文本,而是首先对其进行编码,并将incoded形式放入脚本中 像这样:

我使用pysftp模块的Python脚本连接到SFTP服务器

显然,我可以明确地传递我不喜欢的SFTP密码


我的问题:如何将密码替换为加密密码,以避免有人在世界上可见?

您的意思是不希望密码在代码或配置文件中可见吗?没有办法以允许自动解密的方式加密任何内容。您所能做的只是混淆密码,而不是真正加密密码。如果有人可以访问你的代码,他/她总是可以对你的“加密”进行反向工程

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

像这样:

import base64

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

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

让世界看不见钥匙和密码的标准方法是不将它们存储在世界可读的地方。这通常意味着不将它们放在脚本中,而是将配置文件(如)设置为仅由您读取。一个更现代的替代方案是kwallet等服务

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


SSH代理和keyring服务都支持对密钥存储本身进行加密,但对向其请求密钥的程序来说,加密是否完成(以及在何处完成)是隐藏的

如果您使用的是sftp,则密码在线路上不应可见。在任何情况下,您都需要知道未加密的密码才能对其进行加密。Martin。你说得对。让我们称之为模糊。。。。我的目标不是加密密码,而是在有人打开python脚本时使其不可读。我怎么能把它弄糊涂呢?谢谢你。。。我找到了解决问题的办法。我使用base64模块,它满足了我的需要。我知道任何人都可以对它进行解码,但我的目标只是将其隐藏在python文本文件中,使其不可读。谢谢你的建议。我没事now@susja把它作为答案贴出来,接受它来结束这个问题。马丁·普里克瑞尔-我没有得到你的建议。我已经发布了答案并接受了。。。不清楚你的意思。@susja很好!虽然请注意,您是在(9月26日19:27)我发表评论(9月26日14:57)之后这样做的,但base64在任何方面都不是加密。它只是一种避免特殊字符的编码,用于在需要以文本形式传输或存储任意数据时。这就像我告诉你“阿尔法·布拉沃·查理”时说我没有给你“abc”这个词一样。