새소식

DB

PostgreSQL AES를 사용하여 암복호화 기능 구현하기

728x90

안녕하세요. 팀드모네입니다.

오늘은 간단하게 개인정보를 암호화할 수 있는 방법을 공유드립니다. 프론트 화면이나 서블릿에서도 처리는 할 수 있으나, Query 단에서도 해당 기능 구현이 가능합니다. 저의 경우 Query에서 처리하는 것이 효율적이라고 판단되어 채택하였습니다. 물론 정보를 제대로 보호하려면 DB 솔루션을 도입하셔야 합니다 ^  ^;

 

1. 작업 아이디어

회원가입 화면 > 핸드폰 번호를 저장할 때, AES 암호화 SQL을 거치게 할 것입니다.

회원조회 화면 > 핸드폰 번호를 불러올 때, AES 복호화 SQL을 거치게 할 것입니다.

설명에 앞서 대충 이렇게 생긴 테이블이 있다고 가정하겠습니다.

 

2. 테이블 설계

저는 개인정보(핸드폰 번호)를 암호화할 것입니다.

핸드폰 번호를 암호문으로 바꿔서 저장할 것이므로 TEL을 VARCHAR에 길이는 2000으로 생성하였습니다.

 

3. AES 암호화 Query (값을 저장할 때 사용)

insert 문에 사용하시면 됩니다.

INSERT INTO user2 (id, nm, tel) VALUES ('1', '이름', encode(encrypt(convert_to('010-1111-3325','utf8'),'ENC_KEY','aes'),'hex'));

 

4. AES 복호화 Query (값을 불러올 때 사용)

select 문에 사용하시면 됩니다.

SELECT id, nm, convert_from(decrypt(decode(mem_name,'hex'),'ENC_KEY','aes'),'utf8') FROM user2

 

이렇게 사용하시면 됩니다.

 

이 Query는 Postgres에서 동작하는 쿼리입니다.

MariaDB 등 다른 DBMS에서는 동작하지 않을 가능성이 높습니다 ^  ^;

특이사항이 있다면 언제든 댓글 남겨주세요!

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.