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。
相关推荐
知行合一。。。4 小时前
Python--04--数据容器(总结)
开发语言·python
架构师老Y4 小时前
008、容器化部署:Docker与Python应用打包
python·容器·架构
lifewange5 小时前
pytest-类中测试方法、多文件批量执行
开发语言·python·pytest
pluvium275 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
2401_827499995 小时前
python项目实战09-AI智能伴侣(ai_partner_5-6)
开发语言·python
PD我是你的真爱粉5 小时前
MCP 协议详解:从架构、工作流到 Python 技术栈落地
开发语言·python·架构
ZhengEnCi5 小时前
P2G-Python字符串方法完全指南-split、join、strip、replace的Python编程利器
python
是小蟹呀^6 小时前
【总结】LangChain中工具的使用
python·langchain·agent·tool
宝贝儿好6 小时前
【LLM】第二章:文本表示:词袋模型、小案例:基于文本的推荐系统(酒店推荐)
人工智能·python·深度学习·神经网络·自然语言处理·机器人·语音识别
王夏奇6 小时前
pythonUI界面弹窗设置的几种办法
python·ui