keyring 库

目录

[安装 keyring](#安装 keyring)

基本用法

[1. 设置密码](#1. 设置密码)

[2. 获取密码](#2. 获取密码)

[3. 删除密码](#3. 删除密码)

[4. 返回当前使用的默认密钥环](#4. 返回当前使用的默认密钥环)

[5. 列出所有密码](#5. 列出所有密码)

支持的后端


keyring 是一个 Python 库,用于将敏感信息(如密码)安全地存储在操作系统的密码管理器中。它支持多种平台,如 Windows、macOS 和 Linux,通过调用系统的密钥链、钥匙串或密钥环来实现密码管理。

安装 keyring

python 复制代码
pip install keyring

#linux需安装keyrings.alt------面向无安装桌面的系统使用
pip3 install keyrings.alt
bash 复制代码
[root@localhost ~]# pip3 show keyrings.alt
Name: keyrings.alt
Version: 5.0.1
Summary: Alternate keyring implementations
Home-page: https://github.com/jaraco/keyrings.alt
Author: Jason R. Coombs
Author-email: jaraco@jaraco.com
License: 
Location: /usr/local/lib/python3.9/site-packages
Requires: jaraco.classes, jaraco.context
Required-by: 
[root@localhost ~]# cd ~/.local/share/python_keyring
[root@localhost python_keyring]# ll
total 4
-rw------- 1 root root 64 Jul 25 16:09 keyring_pass.cfg
[root@localhost python_keyring]# cat keyring_pass.cfg 
[yagmail]
2578515263_40qq_2ecom = 
	a3pwcmx1amRwbmtjZGpoYw==

基本用法

1. 设置密码

将密码保存到密钥环中:

python 复制代码
import keyring

# 保存密码
keyring.set_password('service_name', 'username', 'password')
  • service_name: 用于标识密码的服务名(例如 'my_service')。
  • username: 关联的用户名。
  • password: 要保存的密码。
2. 获取密码

从密钥环中检索密码:

python 复制代码
import keyring

# 获取密码
password = keyring.get_password('service_name', 'username')
print(password)
3. 删除密码

从密钥环中删除密码:

python 复制代码
import keyring

# 删除密码
keyring.delete_password('service_name', 'username')
4. 返回当前使用的默认密钥环

keyring.get_keyring()

bash 复制代码
import keyring
print(keyring.get_keyring())
5. 列出所有密码

列出存储在密钥环中的所有服务及其用户名(keyring 的某些后端支持此功能):

python 复制代码
import keyring

# 列出所有服务及其用户名
services = keyring.get_services()
print("Available services:", services)
for service in services:
    usernames = keyring.get_credential(service, None)
    print(f"Service: {service}, Usernames: {usernames}")

支持的后端

keyring 库可以与不同的密码存储后端集成:

  • Windows: 使用 Windows Credential Manager。
  • macOS: 使用 macOS Keychain。
  • Linux: 使用 Secret Service API,支持 GNOME Keyring 和 KWallet。
相关推荐
TechWayfarer7 小时前
查询IP所在地的3种方案:从API到离线库,风控场景怎么选?
开发语言·网络·python·网络协议·tcp/ip
程序员榴莲8 小时前
Python 单例模式
开发语言·python·单例模式
hh.h.8 小时前
昇腾CANN ops-transformer 仓的 MC2 算子:MoE 模型的全到全通信
python·深度学习·transformer·cann
NiceCloud喜云9 小时前
Claude Files API 深入:从上传、复用到配额管理的工程化指南
android·java·数据库·人工智能·python·json·飞书
专注VB编程开发20年9 小时前
windows下python自带标准库 ≈ 70% 纯.py 源码,30% .pyd(DLL)
python
萌新小码农‍10 小时前
人工智能数学基础+python实例(人工智能学习day3)
开发语言·人工智能·python
毋语天11 小时前
FastAPI 进阶实战:请求体、文件上传、响应模型与数据校验
python·fastapi·api开发·数据校验·pydantic
ZhengEnCi12 小时前
09a-斯坦福 CS336 作业一:BPE 分词器
python·神经网络
测试员周周12 小时前
【Appium 系列】第18节-重试与容错 — 移动端测试的稳定性保障
人工智能·python·功能测试·ui·单元测试·appium·测试用例