出于学生目的,我正在使用PostgreSQL运行一些查询。现在,我需要使用AES256加密某些字段,以运行相同的查询并比较时间。知道如何使用UPDATE表来做到这一点吗?例如,我需要加密表地址的客户地址。我可以使用UPDATE吗?谁能给我一个例子吗?找不到任何在线内容。谢谢。
答案 0 :(得分:0)
CREATE EXTENSION IF NOT EXISTS pgcrypto;
INSERT INTO table(name,age) VALUES(
PGP_SYM_ENCRYPT('John', 'AES_KEY'),
PGP_SYM_ENCRYPT('22', 'AES_KEY')
);
UPDATE table SET
(name,age) = (
PGP_SYM_ENCRYPT('Jona', 'AES_KEY'),
PGP_SYM_ENCRYPT('15','AES_KEY')
) WHERE id='1';
SELECT
PGP_SYM_DECRYPT(name::bytea, 'AES_KEY') as name
PGP_SYM_DECRYPT(age::bytea, 'AES_KEY') as age
FROM table WHERE(
LOWER(PGP_SYM_DECRYPT(name::bytea, 'AES_KEY')
LIKE LOWER('%John%')
);