Я использую PostgreSQL 9.5 и пытаюсь понять, как хранить пароли с функциями дайджеста и шифрования в модуле pgcrypto. У меня есть такая таблица:
CREATE TABLE "usuarios" (
"id" integer NOT NULL ,
"password" varchar(120),
CONSTRAINT usuarios_pk PRIMARY KEY ("id")
);
Я успешно сохранил первую строку с этим запросом:
INSERT INTO public.usuarios VALUES (DEFAULT,digest('somesalt' || 'mypass','sha256'));
Я взял идею глобальной соли и дайджеста с использованием алгоритма sha256, прочитав этот пост и официальную документацию, следуя примеру использования crypt( )
Моя проблема в том, что когда я пытаюсь сравнить пароль в pgAdmin со следующим запросом:
SELECT (usuarios.password = digest('somesalt' || 'mypass','sha256')) AS Match FROM usuarios;
Я получаю сообщение об ошибке несоответствия типа пароля (varchar) и типа дайджеста (bytea). Я искал обходной путь или то, каким будет актерский состав, но не могу его найти или, может быть, не могу понять, что у меня под носом. Любая помощь?