Я пытаюсь запросить зашифрованное поле в postgres, используя «pgp_sym_encrypt». Я бегу мой тест, установив все имена в моей таблице зашифрованного значения:Поиск зашифрованного поля в Postgres
update person set first_name = pgp_sym_encrypt('test', 'password');
Тогда выбор на нем:
select * from person where first_name = pgp_sym_encrypt('test', 'password');
Это не возвращает никаких результатов.
Если изменить его, чтобы использовать шифрование нормальные Postgres он будет возвращать все строки в таблице:
update person set first_name = encrypt('test', 'password', 'aes');
select * from person where first_name = encrypt('test', 'password', 'aes');
Мой текущий Postgres версия: Postgres (PostgreSQL) 9.4.0. Поле first_name в этом случае является байтовым полем.
Кто-нибудь знает, почему это не работает с помощью «pgp_sym_encrypt»?
Спасибо!
Итак, если бы я хотел выполнить поиск по данным, зашифрованным с помощью алгоритма S2K, мой единственный вариант - настроить отдельный индекс на безопасный хэш этих данных? – Dalton001
Поиск будет что-то вроде этого? 'select * from person, где 'test' = pgp_sym_decrypt (first_name, 'password');' –
Это сработало! Спасибо! – Dalton001