web-dev-qa-db-ja.com

データベース列暗号化postgres

Pgcryptoアドオンを使用してpostgresデータベースの列を暗号化する方法

私はpostgres 9.3を使用していて、自分の列の1つを暗号化する必要があります。postgresもAes暗号化をサポートしていますか、それとも何らかの方法でそれを実現できますか?

12
Nitin

はい、Postgrespgcryptoモジュールは AES 。例を含む詳細はすべてここにあります。サンプルの使用法については:

-- 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)
11
Dmitry Savinkov