컬럼 암복호화


[Spring] @ColumnTransformer 을 통한 JPA 암복호화 적용하기

Spring JPA - DB 암호화 복호화

기본적으로 컬럼 암호화 방식은 2가지 방식이 존재한다.

Applcation 단에서 커스텀 라이브러리로 암호화를 진행하면, SQL 에서 where의 like 절이 잘 동작이 안되는 이슈가 있다.

DB의 암복호화 함수 호출화 해서 암호화 하는 방법은 @ColumnTransformer 어노테이션을 사용한다.

@ColumnTransformer(write = “DB암호화 함수(?)”, read = “DB복호화 함수(복호화 컬럼)”)

사용 예)

데이터베이스 저장된 프로시져 함수

프로시저 (Procedure)

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