hive 암호화 복호화

hive에선 AES를 사용하면 데이터를 암호화, 복호화할 수 있다.

이 함수는 RDB에서도 문법은 조금 다르게 가능할 수도 있으니 한번 찾아보길 바란다.

-- 암호화
select 'hadoop', base64(aes_encrypt('hadoop', '1234567890123456')) as encrypt;

-- 복호화
select '암호화된 문자열' as encrypt, aes_decrypt(unbase64('암호화된 문자열'), '1234567890123456') as decrypt;

암호화 과정은 aes_encrypt(암호화할 문자열, 17자리 이상의 키)로 먼저 암호화를 한 후, base64 함수로 binary 처리를 해준다.

복호화 과정은 암호화 과정을 반대로 해주면 된다.

한글은 위와 같은 방식으로 복호화를 해주면 깨져서 나온다. 한글은 아래와 같이 string으로 형변환을 해줘야 한다.

-- 암호화
select '하둡', base64(aes_encrypt('하둡', '1234567890123456')) as encrypt;

-- 복호화
select '암호화된 문자열' as encrypt, cast(aes_decrypt(unbase64('암호화된 문자열'), '1234567890123456') as string) as decrypt;

Leave a comment