Python 密钥环不会覆盖条目,而是创建新条目

问题描述 投票:0回答:1

我在使用 python 密钥环库时遇到问题。我想从 Windows 凭据管理器中的条目中提取密码。之后我想覆盖该特定条目的密码。这是我的代码。

import keyring

# The service name in the credentials manager is "User@Service", the username is "User"
password = keyring.get_password("User@Service", "User")

# Overwrite the password
keyring.set_password("User@Service", "User", "NewPassword")

我希望这会覆盖我的旧密码,但它会在凭据管理器中创建一个服务名称为“User@User@Service”的新条目

我还尝试简单地执行 keyring.set_password("Service", "User", "NewPassword") 但这会创建一个服务名称为“Service”的新条目。我根本无法让它覆盖现有条目。 任何帮助表示赞赏。谢谢。

python windows python-keyring
1个回答
0
投票

我今天也遇到这个问题了。看起来就像这里提到的同样的事情:

https://github.com/jaraco/keyring/issues/545

我不知道它是否已被修复或从那时起一直是一个问题。我无法让它工作,因为它只是创建一个新的凭据,除非两个版本都已经存在(service 和 user@service)。

我正在通过删除凭据并创建一个新凭据来解决此问题。

import keyring
from keyring.errors import PasswordDeleteError

try:
    keyring.delete_password("testapp", "username")
except PasswordDeleteError:
    # In case the password doesn't exist yet
    pass
keyring.set_password("testapp", "username", "pw")
© www.soinside.com 2019 - 2024. All rights reserved.