PostgreSQL 자체 기능 만으로 어떤 문자열을 암호화해서 저장하거나 암호화된 데이터를 다시 원래의 문자열로 복호화 하기 위해서는 pgcrypto라는 확장 기능을 활용하면 됩니다.
먼저 PostgreSQL에서 다음 명령을 통해 확장 기능을 설치할 수 있습니다. 저 같은 경우 PostgreSQL v10을 사용하였습니다.
CREATE EXTENSION pgcrypto;
이제 어떤 문자열을 암호화하는 방법은 다음과 같습니다.
SELECT encode( encrypt( convert_to('GIS 개발자, 김형준', 'utf8'), 'encoding_key', 'aes' ), 'hex' );
위의 쿼리는 “GIS 개발자, 김형준” 문자열을 “encoding_key”를 암호화 키로 사용하여 AES 알고리즘으로 암호화하는 것입니다. 결과는 다음과 같습니다.
이제 다시 암호화된 데이터를 원래의 문자열로 복호화 하는 방법은 아래와 같습니다.
SELECT convert_from( decrypt( decode('12773b7766896ab35aed6b0b5be174d3b4c57c4bde2fc88a982b12946b500943','hex'), 'decoding_key', 'aes' ), 'utf8' );
결과는 다음과 같습니다.