Может ли PostgreSQL сделать запрос на зашифрованные записи? - PullRequest
3 голосов
/ 13 октября 2011

Допустим, у меня есть весь столбец в таблице, который зашифрован, таблица также имеет незашифрованные столбцы, такие как идентификаторы, и у меня есть ключ шифрования для всего столбца, и я использовал функцию encrypt () СУБД с AES для храненияэто.

Мне интересно, есть ли в любом случае выполнить что-то вроде

SELECT * FROM table1 WHERE decrypt(col1, 'fooz', 'aes') = 'aValue'

Я уже пробовал это в PostgreSQL и приведенный выше синтаксис не поддерживается.Если нет способа сделать это, каковы обходные пути?

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

1 Ответ

2 голосов
/ 13 октября 2011

Псевдокод

SELECT * FROM table1 WHERE col1 = encrypt('avalue','fooz','aes');

Или, более конкретно:

Реальный код

SELECT * FROM table1
WHERE col1 = pgp_sym_encrypt('avalue', 'apasswordwithsomeentropy'
                            ,'compress-algo=1, cipher-algo=aes256');

http://www.postgresql.org/docs/8.3/static/pgcrypto.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...