我试图从 Python生成postgres使用密码。hashlib
>>> import hashlib
>>> hashlib.md5("psql123").hexdigest()
2636d1ddc54901f98d011ffe050c0eb7
但是postgresql需要md5前缀,所以
sudo -u postgres psql
ALTER USER postgres PASSWORD 'md52636d1ddc54901f98d011ffe050c0eb7';
psql123但是,如果我用作密码,身份验证将失败。
如果我使用passlib,我很好。见http://pythonhosted.org/passlib/lib/passlib.hash.postgres_md5.html
psql123使用密码执行以下操作是可以的。
ALTER USER postgres PASSWORD 'md556074e7318bd4cee558faab0678a2fad';
我不明白警告passlib想说什么。可以为postgres用户使用此哈希吗?此外,它在文档中的哪个位置说username必须是输入的一部分?
我认为这就是为什么postgres无法理解hashlib. 作为 LDAP 用户,我可以在 shell 中生成密码。postgres 有内置命令吗?有吗psycopg2?好像没有。