Я попытался сгенерировать пароль для postgres
, используя hashlib
с Python.Генерирование пароля пользователя postgresql
>>> import hashlib
>>> hashlib.md5("psql123").hexdigest()
2636d1ddc54901f98d011ffe050c0eb7
Но требует md5
PostgreSQL префикса, поэтому затем
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, я могу сгенерировать пароль в оболочке. У Postgres есть встроенная команда для этого? Есть ли у psycopg2
? Похоже, что нет.
Большое спасибо. Я поддерживаю вас обоих, но, поскольку вы ответили на все мои вопросы, я проверю вас. Но я благодарю вас обоих. НЕТ, хеш предназначен только для учетной записи пользователя postgres', а не для учетной записи пользователя приложения. Этот вид хэша напоминает мне две наивные структуры MAC, которые приводят к атаке расширения/длины, т.е. – CppLearner