728x90
반응형
SMALL
중요한 데이터를 평문 전송, 저장할 수 없어 postgreSQL DB에 AES 암호화를 적용하여
저장할 경우가 생겼다.
그럴땐 이렇게 convert_to와 encrypt 함수를 활용하여 암호화, 복호화를 해준다.
-- 암호화
select encode(encrypt(convert_to('암호화할문자열','utf8'),'암호화키','aes'),'hex');
-- 결과 -> 암호화된 값
-- 복호화
select convert_from(decrypt(decode('위에서 암호화된문자열','hex'),'암호화키','aes'),'utf8');
-- 결과 -> '암호화할문자열'로 원복
사용하기 편하게, 함수로 빼보았다.
-- AES_ENC 함수(암호화)
CREATE OR REPLACE FUNCTION AES_ENC(ENCSTR CHARACTER VARYING(2000)) AS
$$ BEGIN
RETURN encode(encrypt(convert_to(ENCSTR,'utf8'),'암호화키','aes'),'hex');
END; $$
LANGUAGE PLPGSQL;
-- AES_DEC 함수(복호화)
CREATE OR REPLACE FUNCTION AES_ENC(ENCSTR CHARACTER VARYING(2000)) AS
$$ BEGIN
RETURN convert_from(decrypt(decode(ENCSTR, 'hex'),'암호화키','aes'),'utf8');
END; $$
LANGUAGE PLPGSQL;
728x90
반응형
LIST
'PostgreSQL' 카테고리의 다른 글
postgreSQL 이번달의 첫번째날, 마지막날 구하기 (0) | 2023.03.13 |
---|---|
postgreSQL ifnull 대신 역할 - coalesce()!!! (0) | 2023.03.13 |
ERROR: operator does not exist: bigint = character varying (0) | 2020.11.17 |
PostgreSQL - auto increment 기능 만들기 (0) | 2020.11.17 |
postgreSQL 외부접속 허용하는 방법 (0) | 2020.11.04 |