gpt4 book ai didi

python - 我可以将 md5 身份验证与 psycopg2 一起使用吗?

转载 作者:太空狗 更新时间:2023-10-29 21:44:29 25 4
gpt4 key购买 nike

在阅读文档、源代码和帮助线程两个小时后,我放弃了。我无法让 psycopg2 使用 md5 字符串进行身份验证。根据this线程 除了在 pg_hba.conf 中启用 md5-auth 之外,我不需要做任何事情。

这是我当前的 pg_hba.conf:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
host all all 0.0.0.0/0 md5

我这样使用 psycopg2:

psycopg2.connect(host='localhost', port=5433, user='me', password='md5xxxx').cursor()

给出:

psycopg2.OperationalError: FATAL:  password authentication failed for user "me"

自然地,给定的密码与 pg_authid.rolpassword 匹配。

根据 pg_hba.conf,我只能使用 md5-auth 登录(对吗?)。尽管如此,我的未散列密码仍然可以正常工作(而散列密码不能),而且我无法在其源代码中找到任何对 psycopg2 散列它的引用。

帮忙吗?

谢谢!

最佳答案

Psycopg2 is a wrapper around libpq ,即 Postgres 客户端库,它已经实现了这一点。无需散列您的密码。在通过网络发送之前,它将被散列(由 libpq)。


值得注意的是,libpq 实际上会发送用您的用户名加盐的密码的 MD5 和,以及用共享连接常量加盐的 MD5 和的 MD5 和(请参阅 the source here)。复制该行为需要做一些工作。

关于python - 我可以将 md5 身份验证与 psycopg2 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6782026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com