keyring 库

embedded/2024/10/21 14:19:51/

目录

keyring-toc" style="margin-left:80px;">安装 keyring

基本用法

1. 设置密码

2. 获取密码

3. 删除密码

4. 返回当前使用的默认密钥环

5. 列出所有密码

支持的后端


 

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

keyring">安装 keyring

python">pip install keyring#linux需安装keyrings.alt——面向无安装桌面的系统使用
pip3 install keyrings.alt
[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()

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。

http://www.ppmy.cn/embedded/87465.html

相关文章

测试工作中常听到的名词解释 : )

背景 很多名称其实看字面意思都挺抽象的,有时看群里的测试大佬在不停蹦这类术语,感觉很高大上,但其实很多你应该是知道的,只不过没想到别人是这样叫它的。又或者你的主编程语言不是 Java,所以看不懂他们在讲啥&#x…

mysql中where与on区别

WHERE子句 作用范围:WHERE子句主要用于过滤FROM子句返回的结果集。它可以在SELECT、UPDATE、DELETE语句中使用,以限制哪些行被包含在最终的查询结果中,或者哪些行被更新或删除。应用场景:当需要基于某些条件过滤结果集时&#xf…

心灵调整:音乐之美

音乐每天都在不同的空间和复杂的形式影响着人们。从电梯音乐削减尴尬的沉默,到家庭交通堵塞。音乐增强了人们所爱的人与人之间的瞬间,并帮助他们度过艰难时期。音乐被用于世界各地几代人的各种形式的治疗。本文进一步阐述了它如何在几种类型的心理健康状况中得到应用。 什么是音…

Qt信号进阶(信号的各种连接方式、信号连接的断开、手动发送信号)

文章目录 前言信号连接的各种方式1. 使用指针和 SLOT/ SIGNAL 宏2. 使用函数指针3. 使用 lambda 表达式4. 使用 QMetaObject::Connection QMetaObject::Connection成员函数1. 默认构造函数2. 复制构造函数3. 赋值运算符4. 等号运算符5. 不等号运算符6. 有效性检查函数 示例 信号…

C#中的字符串

String 在实例方法中string虽然传入的是引用类型 但是修改string 并不是修改原来堆里面的值 而是又重新创建一个堆值 用来然后用方法内的变量指向新的堆值 C# 中的字符串(string 类型)提供了许多有用的方法来处理字符串数据。以下是一些常用的字符…

科技日报:华宇TAS应用中间件亮相2024政法智能化建设技术装备及成果展

近日,2024政法智能化建设技术装备及成果展在北京国家会议中心举行。成果展上,信创领域的华宇TAS应用中间件产品引人注目。 中间件是一种基础软件,在信息系统中处于应用运行支撑及连接的基础地位,是构建数字化转型基础设施的中坚力…

JavaScript实战 - JavaScript实现树的深度遍历(DFS)

作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有疑问和建议,请私信或评论留言! 前言 树是计算机科学…

【HTML — 构建网络】HTML 中的元数据

HTML 文档的头部是加载页面时不会在 Web 浏览器中显示的部分。它包含的信息包括页面"><标题>、指向 CSS 的链接(如果您选择使用 CSS 设置HTML内容的样式)、指向自定义图标的链接以及其他元数据(有关HTML的数据,例如作者和描述文档的重要关键字)。Web 浏览器…