在Linux上的GNOME/KDE中,系统会提示用户输入其密码,以针对每个应用程序授权访问密钥环。
import keyring
get_password(service, username)用户同意是如何实现的?整个概念,至少在Windows中,是基于所有安装的程序都是“可信的”这一假设吗?
发布于 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就会运行,但我不知道具体细节。
发布于 2018-04-14 05:48:47
cedential管理器方法可以工作,但在我的示例中添加:
然后使用相同的网络地址添加另一个条目
"myPassGroup"
pass2将覆盖第一个条目 pass1!这是一个主要的回想,因为“互联网或网络地址”是作为密钥环中的一个组名,我需要在同一名称下放置多个密码。
我的解决方案是直接使用python命令
中打开CMD输入
keyring
您可以通过以下方式验证结果
我知道这是可行的,但仍然很难找到实际数据保存的位置
我使用以下命令尝试找出
导入print(keyring.util.platform_.config_root())"
我的例子中的data_root是"C:\Users\JunchenLiu\AppData\Local\Python Keyring“我检查了文件夹,它不存在...它一定被保存在什么地方了。也许有人能想出办法。
但是我的解决方案应该可以在Windows上完美地工作
发布于 2013-09-24 12:14:08
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 = Nonehttps://stackoverflow.com/questions/14756352
复制相似问题