📜  在 python 中隐藏密码(1)

📅  最后修改于: 2023-12-03 15:37:27.595000             🧑  作者: Mango

在 Python 中隐藏密码

在编写需要访问敏感信息的 Python 程序时,保护这些信息是非常重要的。其中一项保护措施是隐藏密码,使其不可见。

使用 getpass 模块

Python 中的 getpass 模块可用于在控制台中输入密码并进行掩盖。

import getpass

password = getpass.getpass()
print("Your password is:", password)

以上代码会提示用户输入密码,但是用户输入的内容会被隐藏,只有星号显示。getpass() 函数返回用户输入的内容。

使用环境变量

将密码存储为环境变量是另一种常见的隐藏密码的方法。这样,密码不会明文储存在代码中,而是存在计算机的环境变量中。

import os

password = os.environ.get('PASSWORD')
print("Your password is:", password)

以上代码会从计算机的环境变量中获取名为 PASSWORD 的变量,并将其赋给 password 变量。为了保护密码,我们应该将密码保存在一个只有特定用户有权限访问的配置文件中,而不是直接保存在环境变量中。

使用 Python 的 keyring 模块

keyring 是一个用于在 Python 中安全存储密码的库。它允许我们将密码保存在一个安全的密码管理器中,而不是以明文形式保存在代码中或计算机的环境变量中。

为了使用 keyring,我们需要安装它:

pip install keyring

接下来,我们可以使用以下代码将密码保存在密码管理器中:

import keyring

service_id = 'my_service'
username = 'my_username'
password = 'my_password'

keyring.set_password(service_id, username, password)

此代码将在密码管理器中为服务 ID(可以是您想要的任何名称)和用户名创建一个密码。

我们可以使用以下代码从密码管理器中检索密码:

import keyring

service_id = 'my_service'
username = 'my_username'

password = keyring.get_password(service_id, username)
print("Your password is:", password)

以上代码将从密码管理器中获取 Service ID 和用户名所对应的密码,并将其赋给 password 变量。必须输入已存在的 Service ID 和用户名,否则将引发 KeyError 异常。

结论

以上是几种常见的在 Python 中隐藏密码的方法。请记住,无论您选择哪种方法,安全性比方便性更重要。请确保密码得到妥善保护,以免他人获得敏感信息。