如何使用Python密钥环检索用户名?

yoy*_*nno 5 python windows python-keyring

我的Windows 7机器上有一个Mercurial密钥环.我正在使用Python keyring库从Mercurial密钥环获取用户凭据.

我可以使用以下命令检索给定用户名的密码:

keyring.get_password('Mercurial', 'user@@etc')
Run Code Online (Sandbox Code Playgroud)

是否有类似的功能来检索用户名?

Ste*_*ica 9

虽然keyring仅设计用于存储密码,但您可以滥用get_password单独存储用户名。

import keyring

# store username & password
keyring.set_password("name_of_app", "username", "user123")
keyring.set_password("name_of_app", "password", "pass123")

# retrieve username & password
username = keyring.get_password("name_of_app", "username")
password = keyring.get_password("name_of_app", "password")
Run Code Online (Sandbox Code Playgroud)

或者,如果您想将用户名与密码配对:

import keyring

service_id = "name_of_app"
username = "user123"

# store username & password
keyring.set_password(service_id, "username", username)
keyring.set_password(service_id, username, "pass123")

# retrieve username & password
username = keyring.get_password(service_id, "username")
password = keyring.get_password(service_id, username)
Run Code Online (Sandbox Code Playgroud)

感谢达斯汀悦亚历克斯陈此解决方案。


Mar*_*ers 7

您应该将用户名存储在其他地方。

密钥环仅存储密码,由应用程序名称和用户名键入。


小智 6

在 Windows 上,我能够同时使用用户名和密码(即“凭据”)

c = keyring.get_credential("servicename", None)

请注意,这在 macOS 上keyring不起作用,后端没有搜索条目的功能 - 即您需要知道用户名。不过,我想本机代码可以让您这样做,请参阅官方文档

  • 值得一提的是,您可以访问用户名和密码,如下所示:“c.username”和“c.password”。 (2认同)