python之keyring库:安全密码管理库,不同平台service_name、username的获取

目录

keyring库的基本用法

设置及修改密码

获取密码

删除密码

检索密码

获取当前系统的所有service_name

Windows 系统

macOS 系统

Linux 系统

跨平台封装

获取同一service_name下的所有username

Windows 系统

macOS 系统


keyring 是一个Python库,它提供了一个简单的方法来访问系统的密钥管理服务,使得存储和检索敏感信息(如密码)变得更加安全和便捷。使用keyring库的好处之一是它抽象了底层密钥管理的细节,使得你的应用程序可以跨多个平台(如Windows、macOS、Linux等)一致地工作,而无需关心每个平台特定的密钥存储机制,方便测试及开发中的用户及密码管理。需要注意的是,keyring库的使用可能需要用户的交互(如在首次存储凭证时输入密码),这取决于底层的密钥管理服务实现。

安装:pip install keyring

keyring库的基本用法

参数:

  • service_name: 用于标识密码的服务名,支持自定义(例如 'test_service')。
  • username: 关联的用户名。
  • password: 要保存的密码。

设置及修改密码

import keyring

keyring.set_password(service_name, username, password)

获取密码

pd = keyring.get_password(service_name, username)
print(pd)

删除密码

keyring.delete_password(service_name, username)

检索密码

当你调用keyring.get_credential(service_name, username)时,keyring库会尝试从系统的密钥管理服务中检索与该服务名称和用户名相关联的凭证。如果找到了匹配的凭证,它会返回一个包含两个元素的元组:用户名和密码。如果没有找到匹配的凭证,它会返回None或者在某些实现中可能会抛出一个异常。

import keyring

# 假设我们要获取GitHub的凭证
service_name = "github"
username = "your_github_username"

# 尝试获取凭证
credential = keyring.get_credential(service_name, username)

if credential:
    print(f"Username: {credential.username}, Password: {credential.password}")
else:
    print("No credential found for the specified service and username.")
### Python Keyring 简介 Keyring 是一个用于管理密码安全框架,旨在简化应用程序和服务之间的凭证共享过程。通过 keyring 可以安全地保存和检索用户的登录信息和其他敏感数据。 #### 安装 Keyring 为了使用 keyring ,首先需要安装它: ```bash pip install keyring ``` 如果遇到权限问题,可以尝试加上 `--user` 参数来安装到用户目录下。 #### 设置和获取密码 keyring 提供了简单的方法来设置和获取存储在操作系统密钥环中的密码。 ```python import keyring service_name = "example_service" username = "john_doe" # 设置密码 password_to_store = "secure_password_123" keyring.set_password(service_name, username, password_to_store) # 获取已存的密码 retrieved_password = keyring.get_password(service_name, username) print(f"The retrieved password is {retrieved_password}") ``` 上述代码展示了如何为特定的服务名称和服务用户名组合设置并读取密码[^1]。 #### 删除密码 当不再需要某个记录时,可以通过调用相应方法删除该条目。 ```python # 删除指定服务名下的用户密码 keyring.delete_password(service_name, username) ``` 此操作会从系统的密钥链中移除对应的凭据项。 #### 列举支持的后端 有时可能想要知道当前环境中可用的关键字实现是什么样的。 ```python from keyring.backend import get_all_keyring_names available_backends = list(get_all_keyring_names()) for backend in available_backends: print(backend) ``` 这段脚本可以帮助开发者理解其程序运行所在平台上的具体行为方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值