Я пытаюсь понять, как пароли ролей должны работать в Postgres.
https://www.postgresql.org/docs/current/static/sql-createrole.html говорит для ЗАШИФРОВАННЫХ/НЕЗАШИФРОВАННЫХ
Если представленная строка пароля уже находится в зашифрованном формате MD5, то она сохраняется зашифрованной как есть,
Итак, мой незашифрованный пароль: MyPassword.
Хэш MD5 «MyPassword»: 48503dfd58720bd5ff35c102065a52d7.
If I do
-- See https://www.postgresql.org/docs/9.6/static/sql-alterrole.html
ALTER ROLE "MeOhMy"
LOGIN
PASSWORD '48503dfd58720bd5ff35c102065a52d7'
;
А затем попытайтесь использовать «MyPassword» при выполнении
sudo -u postgres psql meohmy -h 127.0.0.1 -d meohmy_development
Я, конечно, сначала получаю запрос на мой пароль sudo, а затем мне предлагается Postgres «Пароль для meohmy»
Если я ввожу MyPassword, я получаю
FATAL: password authentication failed for user "[email protected]"
Если вместо этого я введу 48503dfd58720bd5ff35c102065a52d7, то смогу войти.
Что я не понимаю?
PBKDF2
,Rfc2898DeriveBytes
,password_hash
,Bcrypt
,passlib.hash
или аналогичные функции. Смысл в том, чтобы заставить злоумышленника потратить много времени на поиск паролей методом перебора. - person zaph   schedule 30.07.2017