2016-01-07 8 views
6

Как зашифровать столбец в базе данных postgres с помощью pgcrypto addon?Postgres столбца базы данных

Я использую postgres 9.3, и мне нужно зашифровать один из моих столбцов, может ли postgres также поддерживать шифрование Aes или любым способом, я могу его достичь?

ответ

7

Да, Postgres pgcrypto модуль поддерживает AES. Все детали с примерами можно найти here. Что касается использования образца:

-- add extension 
CREATE EXTENSION pgcrypto; 

-- sample DDL 
CREATE TABLE test_encrypt(
    value TEXT 
); 
INSERT INTO test_encrypt VALUES ('testvalue'); 

-- encrypt value 
WITH encrypted_data AS (
    SELECT crypt('PasswordToEncrypt0',gen_salt('md5')) as hashed_value 
) 
UPDATE test_encrypt SET value = (SELECT hashed_value FROM encrypted_data); 

Проверка пароля:

SELECT (value = crypt('PasswordToEncrypt0', value)) AS match FROM test_encrypt; 

Возвращает:

match 
------- 
t 
(1 row) 
+3

Это означает, что мне нужно внести изменения в моем коде приложения тоже можно добиться без внесения каких-либо изменений на уровне приложения. – Nitin

+0

@Nitin - хорошо, это сложно сказать вам из-за того, что я не видел вашей аутентификации. –

Смежные вопросы