블로그 이미지
lahuman

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

05-10 20:18

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
  • total
  • today
  • yesterday
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;


 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;

4. 테스트

사용자 삽입 이미지




 

'DBMS > 오라클' 카테고리의 다른 글

IMPORT  (0) 2007.01.16
데이터 사전 정보 조회  (0) 2007.01.16
오라클 진단 스크립트(튜닝)  (1) 2007.01.16
우편번호 테이블 만들기  (0) 2007.01.16


posted by 알 수 없는 사용자