간단하게 DB 암호화 함수 만들기

👤 김선호 🕒 2025-10-30 10:41
조회수 474

설명

이 함수는 Base64로 인코딩하고, 복호화 하는 함수 입니다.

운영 서버에 DB암호화 기능이 있을 때 로컬에는 제공을 안해주니 불편하실 때 참고하셔서 사용하시면 좋을 것 같아 공유 합니다.

인코딩 함수 만들기

p_input VARCHAR2,  -- Base64 문자열로 인코딩
p_dummy NUMBER DEFAULT 101 -- 의미 없는 파라미터, 인터페이스 유지용
) RETURN VARCHAR2
IS
BEGIN
RETURN UTL_ENCODE.TEXT_ENCODE(p_input, 'UTF8', UTL_ENCODE.BASE64);
END;

디코딩 함수 만들기

CREATE OR REPLACE FUNCTION pls_decrypt_b64_id (
p_input VARCHAR2,
p_dummy NUMBER DEFAULT 101 -- 의미 없는 파라미터, 인터페이스 유지용
) RETURN VARCHAR2
IS
l_raw RAW(32767);
BEGIN
  -- Base64 decode(문자셋 변환 없이 처리)
l_raw := UTL_ENCODE.BASE64_DECODE(UTL_RAW.CAST_TO_RAW(p_input));
  -- RAW -> VARCHAR2
RETURN UTL_I18N.RAW_TO_CHAR(l_raw, 'UTF8');
END;

함수 생성 시 잘 생성 되었는지 확인 하기

SELECT object_name, object_type, status
FROM all_objects
WHERE object_name = UPPER(’함수명');

함수 삭제

DROP FUNCTION 함수명;

ERROR 확인

SELECT * 
FROM USER_ERRORS 
WHERE NAME = UPPER('함수명') 
AND TYPE = 'FUNCTION';

인코딩 예시

SELECT pls_encrypt_b64_id('123123', 101) FROM dual;

디코딩 예시

SELECT pls_decrypt_b64_id('MTIzMTIz', 101) FROM dual;
💬 댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요!
댓글을 작성하려면 로그인해주세요.