所以我看到了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()
但哈希只能在知道密钥的情况下重新计算。 这可以防止有人更改数据并更改哈希以匹配的情况。
本文档解释得很好。