Pgcryptoアドオンを使用してpostgresデータベースの列を暗号化する方法
私はpostgres 9.3を使用していて、自分の列の1つを暗号化する必要があります。postgresもAes暗号化をサポートしていますか、それとも何らかの方法でそれを実現できますか?
はい、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)