[Spring] @ColumnTransformer 을 통한 JPA 암복호화 적용하기
기본적으로 컬럼 암호화 방식은 2가지 방식이 존재한다.
Applcation 단에서 커스텀 라이브러리로 암호화를 진행하면, SQL 에서 where의 like 절이 잘 동작이 안되는 이슈가 있다.
DB의 암복호화 함수 호출화 해서 암호화 하는 방법은 @ColumnTransformer 어노테이션을 사용한다.
@ColumnTransformer(write = “DB암호화 함수(?)”, read = “DB복호화 함수(복호화 컬럼)”)
사용 예)
데이터베이스 저장된 프로시져 함수
CREATE DEFINER=`root`@`localhost` FUNCTION `test_db`.`test_encrypt`(ENC_DATA VARCHAR(100)) RETURNS varchar(300) CHARSET utf8mb4 COLLATE utf8mb4_general_ci
begin
DECLARE RETURN_VAL VARCHAR(300);
SELECT to_base64(aes_encrypt(ENC_DATA, 'key'))
INTO RETURN_VAL;
RETURN RETURN_VAL;
END