gpt4 book ai didi

python - 我需要在 Python 中安全地存储用户名和密码,我有哪些选择?

转载 作者:IT老高 更新时间:2023-10-28 21:39:55 26 4
gpt4 key购买 nike

我正在编写一个小型 Python 脚本,该脚本将使用用户名和密码组合定期从第三方服务中提取信息。我不需要创建 100% 防弹的东西(100% 甚至存在吗?),但我想涉及一个很好的安全措施,所以至少有人需要很长时间才能打破它。

这个脚本没有图形用户界面,并且会由 cron 定期运行,所以每次运行它来解密时都输入密码并不能真正起作用,我必须存储在加密文件中或在 SQLite 数据库中加密的用户名和密码,这将是更可取的,因为无论如何我都会使用 SQLite,并且我可能需要在某些时候编辑密码。此外,我可能会将整个程序包装在一个 EXE 中,因为此时它仅适用于 Windows。

如何安全地存储用户名和密码组合,以便通过 cron 作业定期使用?

最佳答案

python keyring libraryCryptProtectData 集成Windows 上的 API(以及 Mac 和 Linux 上的相关 API)使用用户的登录凭据加密数据。

简单用法:

import keyring

# the service is just a namespace for your app
service_id = 'IM_YOUR_APP!'

keyring.set_password(service_id, 'dustin', 'my secret password')
password = keyring.get_password(service_id, 'dustin') # retrieve password

如果您想将用户名存储在 key 环上,请使用:

import keyring

MAGIC_USERNAME_KEY = 'im_the_magic_username_key'

# the service is just a namespace for your app
service_id = 'IM_YOUR_APP!'

username = 'dustin'

# save password
keyring.set_password(service_id, username, "password")

# optionally, abuse `set_password` to save username onto keyring
# we're just using some known magic string in the username field
keyring.set_password(service_id, MAGIC_USERNAME_KEY, username)

稍后从 key 环中获取您的信息

# again, abusing `get_password` to get the username.
# after all, the keyring is just a key-value store
username = keyring.get_password(service_id, MAGIC_USERNAME_KEY)
password = keyring.get_password(service_id, username)

项目使用用户的操作系统凭据加密,因此在您的用户帐户中运行的其他应用程序将能够访问密码。

为了稍微掩盖该漏洞,您可以在将密码存储到 key 环之前以某种方式加密/混淆密码。当然,任何以您的脚本为目标的人都可以查看源代码并弄清楚如何解密/取消混淆密码,但您至少可以防止某些应用程序清除保管库中的所有密码并获取您的密码.

关于python - 我需要在 Python 中安全地存储用户名和密码,我有哪些选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014953/

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