암호화·개인정보 보호 — AES-256-GCM, 키 관리, 검색용 해시
개인정보보호법의 안전성 확보조치 기준을 개발자 관점에서 정리하고, JDK 표준 API 만으로 AES-256-GCM 암복호화와 검색용 HMAC 해시를 직접 구현합니다.
1. 왜 배우는가
주민등록번호, 계좌번호, 카드번호 같은 개인정보를 다루는 국내 업무 시스템은 개인정보보호법의 안전성 확보조치 기준을 지켜야 합니다. 위반 시 과징금과 형사 책임이 따르기 때문에 실무에서 가장 민감한 영역 중 하나입니다.
문제는 "암호화하라"는 요구가 구체적으로 무엇을 뜻하는지 헷갈리기 쉽다는 점입니다. Base64 인코딩을 암호화로 착각하거나, 비밀번호를 암호화(복호화 가능)로 저장하거나, IV 를 고정값으로 재사용하는 실수가 실제 코드 리뷰에서 자주 나옵니다.
이 레슨은 인코딩·해시·암호화를 구분하고, AES-256-GCM 으로 안전하게 암복호화하는 방법과 키 관리·키 교체·검색용 해시까지 실무에 바로 쓸 수 있는 형태로 정리합니다. 코드는 java-src/extension/13_crypto 에 있고 Main·Crypto 두 파일로 구성됩니다.