如何在PostgreSQL中加密数组
所以我看到如何在PostgreSQL中加密数组,postgresql,encryption,Postgresql,Encryption,所以我看到摘要(数据文本,类型文本)返回bytea,但是有没有办法将其应用于insert上的数组类型(bytea[]) 例如: INSERT INTO table(my_val) VALUES(digest($1, 'type')); 是如何将其用于非数组值,但如何将其应用于数组?您可以将任何内容转换为文本 因此,将数组强制转换为文本,然后对其进行散列 INSERT INTO table(my_val) VALUES(digest(cast(data as text), type)); 将数
摘要(数据文本,类型文本)返回bytea
,但是有没有办法将其应用于insert上的数组类型(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()
,但哈希值只能在知道密钥的情况下重新计算。
这可以防止出现有人更改数据并更改哈希以进行匹配的情况
这很好地解释了。摘要不是加密的,而是散列。