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

发布于:2025-02-11 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

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.")

网站公告

今日签到

点亮在社区的每一天
去签到