如何在PostgreSQL中加密数组



所以我看到了digest(data text, type text) returns bytea但是有没有办法将其应用于插入时的数组类型(bytea[](?

例如:

INSERT INTO table(my_val) VALUES(digest($1, 'type'));

是你如何将其用于非数组值,但我如何将其应用于数组?

你可以将任何东西投射到文本中。

因此,将数组转换为文本,然后对其进行哈希处理。

INSERT INTO table(my_val) VALUES(digest(cast(data as text), type));

将数组转换为文本并使用crypt()函数进行加密,因为摘要不会加密。

INSERT INTO table(my_val) VALUES(crypt(cast(data as text), type), gen_salt('md5'));

您也可以使用hmac()功能, 这类似于digest()但哈希只能在知道密钥的情况下重新计算。 这可以防止有人更改数据并更改哈希以匹配的情况。

本文档解释得很好。

最新更新