在PostgreSQL上加密数据

时间:2019-02-27 12:29:59

标签: database postgresql encryption

出于学生目的,我正在使用PostgreSQL运行一些查询。现在,我需要使用AES256加密某些字段,以运行相同的查询并比较时间。知道如何使用UPDATE表来做到这一点吗?例如,我需要加密表地址的客户地址。我可以使用UPDATE吗?谁能给我一个例子吗?找不到任何在线内容。谢谢。

1 个答案:

答案 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%')
    );