2008. 11. 27. 15:26
DBMS/오라클
오라클 암호화에 대해
http://blog.naver.com/mhs0519?Redirect=Log&logNo=10001979808
의 내용을 약간 수정 하였다.
난 FUNCTION으로~ ^^
[오라클 암호화를 하는 과정]
1. sys 계정으로 접속한다. (로컬이라면 그냥 /as sysdba .. )
2. 접속 후 아래의 명령어 입력
@%ORACLE_HOME%/rdbms/admin/dbmsobtk.sql
@%ORACLE_HOME%/rdbms/admin/prvtobtk.plb
grant execute on sys.crypto to public;
3. 함수를 만든다.
1) 암호화
CREATE OR REPLACE FUNCTION FN_ENCRYPT( str VARCHAR2 ) RETURN VARCHAR2
IS
raw_input RAW(128);
key_string VARCHAR2(16):='keyvalues';
raw_key RAW(128):=UTL_RAW.CAST_TO_RAW(key_string);
encrypted_raw RAW(2048);
BEGIN
raw_input:=UTL_RAW.CAST_TO_RAW(RPAD(str,FLOOR((LENGTHB(Str)/8+.9))*8));
dbms_obfuscation_toolkit.DESEncrypt(
input => raw_input
, key=> raw_key
, encrypted_data => encrypted_raw);
RETURN rawtohex(encrypted_raw);
END;
IS
raw_input RAW(128);
key_string VARCHAR2(16):='keyvalues';
raw_key RAW(128):=UTL_RAW.CAST_TO_RAW(key_string);
encrypted_raw RAW(2048);
BEGIN
raw_input:=UTL_RAW.CAST_TO_RAW(RPAD(str,FLOOR((LENGTHB(Str)/8+.9))*8));
dbms_obfuscation_toolkit.DESEncrypt(
input => raw_input
, key=> raw_key
, encrypted_data => encrypted_raw);
RETURN rawtohex(encrypted_raw);
END;
2) 복호화
CREATE OR REPLACE FUNCTION FN_DECRYPT( str VARCHAR2 ) RETURN VARCHAR2
IS
key_string VARCHAR2(16) := 'keyvalues';
raw_key RAW(128):=UTL_RAW.CAST_TO_RAW(key_string);
encrypted_raw RAW(2048);
decrypted_raw RAW(2048);
BEGIN
encrypted_raw:=hextoraw(str);
dbms_obfuscation_toolkit.DESDecrypt(
input => encrypted_raw
, key=> raw_key
, decrypted_data => decrypted_raw);
RETURN UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw);
END;
IS
key_string VARCHAR2(16) := 'keyvalues';
raw_key RAW(128):=UTL_RAW.CAST_TO_RAW(key_string);
encrypted_raw RAW(2048);
decrypted_raw RAW(2048);
BEGIN
encrypted_raw:=hextoraw(str);
dbms_obfuscation_toolkit.DESDecrypt(
input => encrypted_raw
, key=> raw_key
, decrypted_data => decrypted_raw);
RETURN UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw);
END;
4. 테스트
'DBMS > 오라클' 카테고리의 다른 글
IMPORT (0) | 2007.01.16 |
---|---|
데이터 사전 정보 조회 (0) | 2007.01.16 |
오라클 진단 스크립트(튜닝) (1) | 2007.01.16 |
우편번호 테이블 만들기 (0) | 2007.01.16 |