2016-01-07 79 views
6

如何使用pgcrypto addon加密postgres数据库中的列?数据库列加密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 - 呃,很难告诉你,因为我没有看到你的验证实现.. –