Назад | Перейти на главную страницу

Как я могу получить доступ к хешированию паролей в postgresql? Пытался установить postgresql-contrib в ubuntu, но все еще не могу получить доступ к функциям хеширования

Итак, я пытаюсь просто хешировать пароли в postgresql, и единственное решение для хеширования, которое я нашел для postgresql, является частью пакета pgcrytpo ( http://www.postgresql.org/docs/8.3/static/pgcrypto.html ), который должен быть в postgresql-contrib ( http://www.postgresql.org/docs/8.3/static/contrib.html ).

Итак, я установил postgresql-contrib (sudo apt-get install postgresql-contrib), перезапустил свой сервер (как простой способ перезапустить postgresql).

Однако у меня до сих пор нет доступа ни к одной из функций хеширования, которые должны быть в postgresql-contrib, например:

ninjawars=# select crypt('global salt' || 'new password' || 'user created date', gen_salt('sha256'));
ERROR:  function gen_salt(unknown) does not exist

ninjawars=# select digest('test', 'sha256') from players limit 1;
ERROR:  function digest(unknown, unknown) does not exist

ninjawars=# select hmac('test', 'sha256') from players limit 1;
ERROR:  function hmac(unknown, unknown) does not exist

Итак, как я могу хэшировать пароли в postgresql на ubuntu?

Это может быть подсказка с одной из указанных выше веб-страниц:

Многие модули предоставляют новые определяемые пользователем функции, операторы или типы. Чтобы использовать один из этих модулей, после установки кода вам необходимо зарегистрировать новые объекты в системе базы данных, выполнив команды SQL в файле .sql, предоставленном модулем. Например,

psql -d dbname -f SHAREDIR/contrib/module.sql

Намного проще Просто установите pdAdmin и из базы данных, с которой вы работаете, щелкните правой кнопкой мыши базу данных и ДОБАВИТЬ НОВЫЙ ОБЪЕКТ, выберите Расширение, затем выберите pgcrypto в качестве имени и установите схему определения как общедоступную, а версия 1.0 РАБОТАЕТ КАК ОЧАРОВАНИЕ ДЛЯ МЕНЯ НА МОЕЙ ОС MAC 10.7 .5 с использованием Postgres 9.2

После установки postgresql-contrib вам нужно запустить CREATE EXTENSION pgcrypto; против БД, где вы хотите использовать криптографические функции