오늘은 간단하게 개인정보를 암호화할 수 있는 방법을 공유드립니다. 프론트 화면이나 서블릿에서도 처리는 할 수 있으나, 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