Gnome-keyring如何进行密码的CRUD

2023-10-07 00:01
文章标签 进行 密码 crud gnome keyring

本文主要是介绍Gnome-keyring如何进行密码的CRUD,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TLDR: 通过其API Example可知,存储Password时可以指定Keyring,查找Password时是在所有keyrings中检索。

Password在Keyring中的CRUD操作如下:

定义密码架构

每个存储的密码都有一组属性,这些属性稍后会 用于查找密码。属性的名称和类型 在架构中定义。架构通常全局定义一次。 下面介绍如何定义架构:

from gi.repository import SecretEXAMPLE_SCHEMA = Secret.Schema.new("org.mock.type.Store",Secret.SchemaFlags.NONE,{"number": Secret.SchemaAttributeType.INTEGER,"string": Secret.SchemaAttributeType.STRING,"even": Secret.SchemaAttributeType.BOOLEAN,}
)

请参阅其他示例,了解如何 以使用架构。

存储密码

以下是在正在运行的特勤服务中存储密码的方法, 比如侏儒密钥环或ksecretservice。

每个存储的密码都有一组属性,这些属性稍后会 用于查找密码。属性不应包含 机密,因为它们不是以加密方式存储的。

这些示例使用示例架构。

第一个示例异步存储密码,并且 适用于 GUI 应用程序,以便 UI 不会阻塞。

from gi.repository import Secretdef on_password_stored(source, result, unused):Secret.password_store_finish(result)# ... do something now that the password has been stored# The attributes used to later lookup the password. These
# attributes should conform to the schema.
attributes = {"number": "8","string": "eight","even": "true"
}Secret.password_store(EXAMPLE_SCHEMA, attributes, Secret.COLLECTION_DEFAULT,"The label", "the password", None, on_password_stored)

下一个示例同步存储密码。函数 调用将阻止,直到存储密码。所以这适用于 非图形用户界面应用程序。

from gi.repository import Secret# The attributes used to later lookup the password. These
# attributes should conform to the schema.
attributes = {"number": "8","string": "eight","even": "true"
}Secret.password_store_sync(EXAMPLE_SCHEMA, attributes, Secret.COLLECTION_DEFAULT,"The label", "the password", None)

查找密码

以下是在正在运行的特勤服务中查找密码的方法, 比如侏儒密钥环或ksecretservice。

每个存储的密码都有一组属性,这些属性是 用于查找密码。如果多个密码与 查找属性,然后返回最近存储的属性。

这些示例使用示例架构。

第一个示例异步查找密码,并且 适用于 GUI 应用程序,以便 UI 不会阻塞。

from gi.repository import Secretdef on_password_lookup(source, result, unused):password = Secret.password_lookup_finish(result)# password will be null, if no matching password foundSecret.password_lookup(EXAMPLE_SCHEMA, { "number": "8", "even": "true" },None, on_password_lookup)

下一个示例同步查找密码。函数 调用将阻止,直到查找完成。所以这适用于 非图形用户界面应用程序。

from gi.repository import Secretpassword = Secret.password_lookup_sync(EXAMPLE_SCHEMA, { "number": "8", "even": "true" }, None)
# password will be null, if no matching password found

删除密码

以下是从正在运行的特勤服务中删除密码的方法, 比如侏儒密钥环或ksecretservice。

每个存储的密码都有一组属性,这些属性是 用于查找要删除的密码。如果多个密码与 属性,然后删除最近存储的属性。

这些示例使用示例架构。

第一个示例异步删除密码,并且 适用于 GUI 应用程序,以便 UI 不会阻塞。

from gi.repository import Secretdef on_password_clear(source, result, unused):removed = Secret.password_clear_finish(result)# removed will be true if the password was removedSecret.password_clear(EXAMPLE_SCHEMA, { "number": "8", "even": "true" },None, on_password_clear)

下一个示例同步删除密码。函数 调用将阻止,直到删除完成。所以这适用于 非图形用户界面应用程序。

from gi.repository import Secretremoved = Secret.password_clear_sync(EXAMPLE_SCHEMA, { "number": "8", "even": "true" }, None)
# removed will be true if the password was remo

Ref: https://gnome.pages.gitlab.gnome.org/libsecret/libsecret-python-examples.html

这篇关于Gnome-keyring如何进行密码的CRUD的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/154767

相关文章

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u

如何使用Spring boot的@Transactional进行事务管理

《如何使用Springboot的@Transactional进行事务管理》这篇文章介绍了SpringBoot中使用@Transactional注解进行声明式事务管理的详细信息,包括基本用法、核心配置... 目录一、前置条件二、基本用法1. 在方法上添加注解2. 在类上添加注解三、核心配置参数1. 传播行为(

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,