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。
相关推荐
默_笙5 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003965 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技5 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读5 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时5 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊5 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1235 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero075 天前
Jev 与 Laya
python·语言模型