Я использую следующее определение для функций postgres:
DROP FUNCTION IF EXISTS EncryptStringWithIV(text);
create or replace function EncryptStringWithIV(email text) returns bytea as '
declare
Key text;
IV text;
value bytea;
begin
select sStringValue into Key from XtkOption where sName=''Key'';
select sStringValue into IV from XtkOption where sName=''IV'';
value = encrypt_iv($1::bytea, Key::bytea, IV::bytea, ''aes'');
return value;
end;
' language plpgsql
;
DROP FUNCTION IF EXISTS DecryptStringWithIV(bytea);
create or replace function DecryptStringWithIV(email bytea) returns bytea as '
declare
Key text;
IV text;
value bytea;
begin
select sStringValue into Key from XtkOption where sName=''Key'';
select sStringValue into IV from XtkOption where sName=''IV'';
value = $1;
return decrypt_iv(value, Key::bytea, IV::bytea, ''aes'');
end;
' language plpgsql
;
Это мой результат, когда fn. вызывается:
EncryptStringWithIV('123')
- \ x8dd75f487a7b45e73fbe365545f0506a DecryptStringWithIV('\\x8dd75f487a7b45e73fbe365545f0506a')
- \ x313233
Должен ли я преобразовывать выходной формат, чтобы вернуть точное текстовое значение (123)? Я не могу понять, в чем именно я ошибаюсь. любая помощь будет принята с благодарностью. Спасибо.