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

server/2025/2/12 5:41:06/

目录

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: 要保存的密码。

设置及修改密码

python">import keyringkeyring.set_password(service_name, username, password)

获取密码

python">pd = keyring.get_password(service_name, username)
print(pd)

删除密码

python">keyring.delete_password(service_name, username)

检索密码

当你调用keyring.get_credential(service_name, username)时,keyring库会尝试从系统的密钥管理服务中检索与该服务名称和用户名相关联的凭证。如果找到了匹配的凭证,它会返回一个包含两个元素的元组:用户名和密码。如果没有找到匹配的凭证,它会返回None或者在某些实现中可能会抛出一个异常。

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

http://www.ppmy.cn/server/166972.html

相关文章

ProcessingP5js数据可视化

折线图绘制程序设计说明 可以读取表格数据,并转换成折线图,条形图和饼状图,并设计了衔接动画效果 1. 功能概述 本程序使用 Processing 读取 CSV 文件数据,并绘制带有坐标轴和数据点的折线图。横坐标(X 轴&#xff09…

fps动作系统9:动画音频

文章目录 动画音频创建音频蓝图cue音量乘数 音效衰减衰减空间 绑定到动画动画序列轨道 动画音频 创建音频蓝图 cue 音量乘数 音量大小 音效衰减 空间音效 衰减 空间 绑定到动画 动画序列 轨道 横着的方向是有不同的轨道的,阴影的就是。

github - 使用

注册账户以及创建仓库 要想使用github第一步当然是注册github账号了, github官网地址:https://github.com/。 之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。 Git…

攻防世界33 catcat-new【文件包含/flask_session伪造】

题目: 点击一只猫猫: 看这个url像是文件包含漏洞,试试 dirsearch扫出来/admin,访问也没成功(--delay 0.1 -t 5) 会的那几招全用不了了哈哈,那就继续看答案 先总结几个知识点 1./etc/passwd&am…

antd-react日期组件disabledDate不可选择的日期 (置灰)属性

需求:原定结项时间表单里回显为2025-02-06,延期时间的选择范围要设置从2025-02-07开始选择包括2.7号的; 2.7号之前的置灰,不可选择 PC端部分代码: // react的函数组件写法 const disabledDate function (current) {console.log(c…

后盾人JS -- 异步编程,宏任务与微任务

异步加载图片体验JS任务操作 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&g…

YOLOv11实战海洋动物图像识别

本文采用YOLOv11作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv11以其高效的特征提取能力&#xff0c;在多个图像分类任务中展现出卓越性能。本研究针对5种海洋动物数据集进行训练和优化&#xff0c;该数据集包含丰富的海洋动物图像…

点云数据聚类处理流程

点云数据聚类处理流程 点云数据聚类处理是将点云数据中的点按照相似性划分为不同的组&#xff08;簇&#xff09;的过程&#xff0c;在目标识别、场景分析等领域有广泛应用。以下是一个通用的点云数据聚类处理流程&#xff1a; 1. 数据获取 激光雷达采集&#xff1a;利用激光…