⑥ MAC 함수 관련 상수
• HMAC_MD5: 해시 값을 검증하기 위해 비밀키를 사용하는 점만 제외하면 MD5와 같다.
• HMAC_SH1: 해시 값을 검증하기 위해 비밀키를 사용하는 점만 제외하면 SHA1과 같다.
상수에 대해서는 모두 살펴 봤다. 이제 함수와 프로시저에 대해 알아 보자.
⑦ ENCRYPT 함수
암호화를 수행하는 함수로 키와 암호화 대상 데이터를 입력받아 암호화한 결과를 반환한다. 매개변수인 대상 데이터, 암호화 키를 비롯해 반환하는 암호화 데이터까지 모두 RAW 타입이다. 구문과 주요 필드는 다음과 같다.
DBMS_CRYPTO.ENCRYPT(
src IN RAW,
typ IN PLS_INTEGER,
key IN RAW,
iv IN RAW DEFAULT NULL)
RETURN RAW;
• src: 암호화할 대상 데이터
• typ: 암호화에 사용될 슈트
• key: 암호화 키
• iv: 초기화 벡터
ENCRYPT 함수는 key를 입력받아 typ에 입력되는 암호화 슈트 방식으로 src 데이터를 암호화 한 다음 그 결과를 반환한다. 암호화 대상이 VARCHAR2 타입이라면 이를 AL32UTF8 문자셋의 VARCHAR2로 변환해야 한다. 그리고 src 매개변수가 RAW 타입이므로 변환 결과를 다시 RAW 타입으로 변환하는 과정을 거쳐야 하는데, 다음과 같이 UTL_I18N.STRING_TO_RAW 함수를 사용해서 변환할 수 있다.
UTL_I18N.STRING_TO_RAW ('입력문자열', 'AL32UTF8');