首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python-keyring是如何在Windows上实现的?

python-keyring是如何在Windows上实现的?
EN

Stack Overflow用户
提问于 2013-02-08 00:44:17
回答 3查看 19.5K关注 0票数 16

在Linux上的GNOME/KDE中,系统会提示用户输入其密码,以针对每个应用程序授权访问密钥环。

代码语言:javascript
复制
import keyring
get_password(service, username)

用户同意是如何实现的?整个概念,至少在Windows中,是基于所有安装的程序都是“可信的”这一假设吗?

EN

回答 3

Stack Overflow用户

发布于 2015-06-11 22:30:42

稍微研究一下,密码似乎存储在Windows Credential Vault中,这相当于Gnome或KDE密钥环。通过打开Windows凭据管理器,您可以实际查看已存储的凭据。在Windows8.1上,我只需在开始屏幕上输入Credential Manager就可以进入,但我认为你也可以从用户账户页面进入。

无论如何,正如您从附加的图像中看到的,我作为测试添加到密钥环的密码显示在Windows Credentials -> Generic Credentials -> keyring_demo下。在PC上以其他用户身份打开此窗口时,不会显示此密码,因此其他用户似乎可以安全地打开此窗口。此屏幕还允许您撤销或更改密码。

至于同意是如何实现的,我相信只要你的Windows用户帐户登录,keyring就会运行,但我不知道具体细节。

票数 23
EN

Stack Overflow用户

发布于 2018-04-14 05:48:47

cedential管理器方法可以工作,但在我的示例中添加:

  • internet or network addess "myPassGroup"
  • username "pass1"
  • password "xxx"

然后使用相同的网络地址添加另一个条目

"myPassGroup"

  • username "pass2"

  • password“xxx”
  • internet or netwokr

pass2将覆盖第一个条目 pass1!这是一个主要的回想,因为“互联网或网络地址”是作为密钥环中的一个组名,我需要在同一名称下放置多个密码。

我的解决方案是直接使用python命令

  • 在windows

中打开CMD输入

  • 然后输入"password2")

  • 然后输入“password2”)

keyring

  • 然后输入keyring.set_password("groupName","passKey“,Python type keyring.set_password("groupName","passKey2”,Python

您可以通过以下方式验证结果

  • keying.get_password("groupname","passKey")
  • keying.get_password("groupname","passKey2")

我知道这是可行的,但仍然很难找到实际数据保存的位置

我使用以下命令尝试找出

导入print(keyring.util.platform_.config_root())"

  • python -c“
  • ; -c”导入keyring.util.platform_;python

我的例子中的data_root是"C:\Users\JunchenLiu\AppData\Local\Python Keyring“我检查了文件夹,它不存在...它一定被保存在什么地方了。也许有人能想出办法。

但是我的解决方案应该可以在Windows上完美地工作

票数 1
EN

Stack Overflow用户

发布于 2013-09-24 12:14:08

代码语言:javascript
复制
from keyring.backend import KeyringBackend

class SimpleKeyring(KeyringBackend):
    """Simple Keyring is a keyring which can store only one
    password in memory.
    """
    def __init__(self):
        self.password = ''

    def supported(self):
        return 0

    def get_password(self, service, username):
        return self.password

    def set_password(self, service, username, password):
        self.password = password
        return 0

    def delete_password(self, service, username):
        self.password = None
票数 -9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14756352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档