Шифрование данных в PostgreSQL - PullRequest
0 голосов
/ 27 февраля 2019

Я выполняю некоторые запросы, используя PostgreSQL для студенческих целей.Теперь мне нужно зашифровать некоторые поля с помощью AES256, чтобы выполнить те же запросы и сравнить время.Любая идея, как это можно сделать с помощью таблицы UPDATE?Например, мне нужно зашифровать адрес клиента таблицы адрес.Могу ли я сделать это с помощью UPDATE?Кто-нибудь может дать мне пример?Не могу найти ничего в Интернете.Спасибо.

1 Ответ

0 голосов
/ 27 февраля 2019
    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%')
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...