오늘 포스팅 할 내용은
PostgreSQL에서 복호화 된 값을 어떻게 하면 확인 할 수 있는 지에 대해서 말해 보려 한다.
일을 하다가 고객사에서 암호화 되어 있는 해당 고객의 주민 번호를 확인해 달라는 요청이 들어왔다.
최근 들어 정보 보안에 대해서 사람들이 많이 예민해지다보니 대부분의 중요한 개인정보는 암호화 하여 데이터 베이스에 저장한다.
먼저 해당 부분의 데이터를 검색한다
select * from 테이블명 where 조건 으로 쿼리를 검색하면 아래와 같은 암호화 된 결과가 나온다
이런 식으로 말이다
그렇기 때문에 이는 함수를 이용해서 암호화 한 내용을 다시 복호화 해서 번역해야만 값을 확인 할 수 있다.
우리가 postgre에서 사용할 함수는decode함수이다.
select ariacbc_decrypt('aria코드'::text, 'aria코드'::text, decode(구할값::text, 'hex'::text), 128) from 테이블명 where 조건
기존의 select 문에서 decode를 추가 해주면된다. 앞의 aria는 대한민국 국가보안기술연구소에서 개발한 블록 암호 체계인데 보안에 대해서 깊게 배우지 못 한 사람들도 (상대적으로)손쉽게 보안을 할 수 있게 보급 하였다. 자세한 설명은 위키백과에 잘 나와있다. 우리는 암호화가 아니라 복호화를 사용할 것이기때문에 aria cbc encrypt가 아닌 ariacbc_decrypt를사용할것이다.
https://ko.wikipedia.org/wiki/%EC%95%84%EB%A6%AC%EC%95%84_(%EC%95%94%ED%98%B8)
해독해서 실행시켜보면 아래와 같이 암호화 된 값이 해독되어 나오는 것을 볼 수 있다.