gpt4 book ai didi

python - 使用 ssh key 加密和解密密码

转载 作者:太空狗 更新时间:2023-10-30 02:23:24 24 4
gpt4 key购买 nike

我的 python 脚本(Python 2.6,在 Debian Linux 上)要求用户输入密码,然后将其保存在用户主目录中。

因为我不想将密码保存为纯文本,所以我想以某种方式对其进行加密。所以我想也许我可以使用用户的(私有(private))ssh key 来加密和解密保存在文件中的密码,这样只有有权访问私有(private) ssh key 的人才能解密保存的密码。

为此使用私有(private) ssh key 是个好主意吗?我如何使用 key 在 python 中加密字符串?

(顺便说一句,我不想​​使用 key 圈之类的东西)

编辑

好吧,我知道将用户 ssh key 用于类似的事情是个坏主意。相反,我现在只使用 base64 编码,如下所述: How does one encode and decode a string with Python for use in a URL?当然它不会保存,当有人阅读我的 python 脚本时。但这对我来说已经足够了,不必将密码保存为纯文本。

最佳答案

唯一值得做的就是存储只有用户才能读取的文件。

您关于使用 ssh key 的论点似乎类似于以下内容:

  1. 我需要存储密码,所以我会对其进行加密
  2. 如果我使用用户的 ssh key 进行加密,这将防止有人解密密码,即使他们知道我的脚本源也是如此,因为只有用户才能读取他们的 ssh key 。

如果您将加密的密码存储在一个只有用户可以读取的文件中,您可以获得与使用 ssh key 相同的好处,而根本不必费心读取用户的 ssh key 。

我同意不以明文形式存储密码有一些好处,以防止有人以 root 身份登录只是在做:

cat secret-password

获取密码,但请记住,很容易在您的 Python 脚本中找到以下行:

password = decrypt-password(data)

并添加以下行:

print "The user's password is",password

类似于 os.fchown()可以保护文件,就像首先创建具有正确权限的文件一样。

你可以 base64 encode密码,因此它不是纯文本,但如果我们假设攻击者可以读取和编辑您的脚本,那么唯一可以保护用户的是攻击者无法读取包含加密密码的文件。

如果您真的担心这一点,只需在用户每次运行脚本时提示用户输入密码即可。

关于python - 使用 ssh key 加密和解密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4165042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com