欢迎访问宙启技术站
智能推送

Python中的keyringset_keyring()函数使用详解

发布时间:2023-12-30 13:02:22

keyring模块是一个Python的第三方库,用于管理密码和凭证的存储、获取和删除。keyring库提供了一个简单的接口,可以将密码和凭证存储在操作系统的钥匙串、密钥存储、kwallet等安全存储中,以避免将敏感信息直接硬编码在代码中。

keyring.set_keyring()函数用于设置当前使用的keyring。keyring库会自动检测操作系统类型,并选择合适的keyring实现。但有时需要手动设置一个特定的keyring实现。set_keyring()函数可以接受一个keyring实例作为参数,也可以直接使用keyring的名称。

下面详细介绍keyring.set_keyring()函数的使用方法。

使用方法:

1. 导入keyring模块和需要使用的keyring实现。例如,如果要使用基于系统的keyring,可以导入Windows、Linux或macOS的实现:

import keyring

from keyring.backends import Windows

from keyring.backends import Linux

from keyring.backends import macOS

2. 构建keyring实例。可以使用keyring.get_keyring()函数来获取默认的keyring实例,也可以通过实例化keyring实现类来创建一个特定的keyring实例。例如:

kr = keyring.get_keyring() # 获取默认keyring实例

kr = Windows.WinVaultKeyring() # 创建基于Windows凭据管理器的实例

kr = Linux.Keyring() # 创建基于Linux密钥存储的实例

kr = macOS.Keyring() # 创建基于macOS钥匙串的实例

3. 设置当前使用的keyring。使用keyring.set_keyring()函数来设置当前使用的keyring。例如:

keyring.set_keyring(kr) # 设置当前使用的keyring为kr

使用例子:

下面是一个使用keyring.set_keyring()函数的示例,演示如何将密码存储在基于Windows凭据管理器的keyring实例中。

import keyring
from keyring.backends import Windows

# 创建基于Windows凭据管理器的keyring实例
kr = Windows.WinVaultKeyring()

# 设置当前使用的keyring
keyring.set_keyring(kr)

# 存储密码到keyring实例中
service = "test_service"
username = "test_username"
password = "test_password"
keyring.set_password(service, username, password)

# 从keyring实例中获取密码
stored_password = keyring.get_password(service, username)
print(stored_password)  # 输出:test_password

# 从keyring实例中删除密码
keyring.delete_password(service, username)

# 再次尝试获取密码,应为None
stored_password = keyring.get_password(service, username)
print(stored_password)  # 输出:None

在上面的示例中,首先创建一个基于Windows凭据管理器的keyring实例,然后使用set_keyring()函数将其设置为当前使用的keyring。然后存储了一个密码到这个keyring实例中,并通过get_password()函数来获取存储的密码。接着使用delete_password()函数从keyring实例中删除密码。最后再次尝试获取密码时应为None。

总结:

keyring.set_keyring()函数用于设置当前使用的keyring实例。使用set_keyring()函数前需要根据需求选择并构建特定的keyring实例。使用set_keyring()函数来设置当前使用的keyring实例后,可以通过keyring库的其他函数来进行密码或凭证的存储、获取和删除操作。以上是keyring.set_keyring()函数的详细介绍及使用例子。