2016-05-03 2 views
1

Я использую PostgreSQL в течение последних нескольких недель, и мне это нравится!Автоматическое хеширование паролей в PostgreSQL

Я использую склепа() и gen_salt() для генерации хэшей паролей, добавив его в запрос на вставку примерно так:

crypt(:password, gen_salt('bf', 8)) 

Аналогично для выбора я использую что-то вроде:

crypt(:password, u.password) 

Я хочу упростить свой код SQL, автоматизируя хэш в столбце пароля таблицы, вместо SQL-запросов или дополнительных функций.

Чтобы быть более ясным, когда я вставляю строку в таблицу, я хочу, чтобы она немедленно конвертировала хэш/сравнение.

Есть ли способ? И если да, это было бы мудро?

+0

Так у вас есть таблица, и вы сохраните хэш пароля в нем, но ваш вопрос очень «загадочный» ха-ха. Серьезно, что вы подразумеваете под автоматизацией (автоматизацией)? Какой S QL-запросы или дополнительные функции? Чего вы хотите достичь? –

+0

Да, извините, возможно, вы правы. Итак ... У меня есть запрос, который отлично работает. Но я хочу удалить crypt (: password, gen_salt ('bf', 8)) из запроса, каким-то образом реализовать его в самом столбце таблицы, поэтому каждый раз, когда значение добавляется, оно немедленно хэшируется и/или сравнивается к хешу. –

ответ

1

Я не буду комментировать «это было бы мудро»? часть вопроса (не потому, что я думаю, что это неразумно, а потому, что я недостаточно знаю о ваших потребностях).

Если вы хотите, чтобы автоматически вычислить значение столбца во время вставки или обновления, вам нужен триггер (см CREATE TRIGGER).

Если вы хотите, чтобы автоматически вычислить значение столбца во время SELECT, вам нужен вид (см CREATE VIEW).

есть другие способы, чтобы достичь того, что вы просите, но триггеры и мнения, вероятно, наиболее простые механизмы.

+0

Спасибо за подсказку, я проверю его завтра и вернусь к вам! –

Смежные вопросы