사용자 도구

사이트 도구


database:oracle:dbms_crypto

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
database:oracle:dbms_crypto [2020/08/11 15:32]
kwon37xi [DBMS_CRYOPTO 상수 읽기]
database:oracle:dbms_crypto [2020/08/11 16:49] (현재)
kwon37xi [Oracle 암호화 -> Java 복호화]
줄 18: 줄 18:
  
 ===== 함수 ===== ===== 함수 =====
-  * ''DBMS_CRYPTO.ENCRYPT'' : 암호화 수행. 암호화 데이터 인자로 byte 배열(RAW)를 받음. hex 문자열 반환.+  * ''DBMS_CRYPTO.ENCRYPT'' : 암호화 수행. 암호화 데이터 인자로 byte 배열(RAW)를 받음. byte 배(RAW) 반환.
   * ''DBMS_CRYPTO.DECRYPT'' : 복호화 수행. 복호화 데이터 인자로 hex 문자열 받음. byte 배열(RAW) 반환.   * ''DBMS_CRYPTO.DECRYPT'' : 복호화 수행. 복호화 데이터 인자로 hex 문자열 받음. byte 배열(RAW) 반환.
  
줄 53: 줄 53:
  
 <code sql> <code sql>
 +
 +-- byte 배열(RAW) 결과
 select DBMS_CRYPTO.encrypt(UTL_RAW.CAST_TO_RAW ('Secret Data'), 4353 select DBMS_CRYPTO.encrypt(UTL_RAW.CAST_TO_RAW ('Secret Data'), 4353
 , UTL_RAW.CAST_TO_RAW ('MYKEY123'),UTL_RAW.CAST_TO_RAW('01234567')) from dual; , UTL_RAW.CAST_TO_RAW ('MYKEY123'),UTL_RAW.CAST_TO_RAW('01234567')) from dual;
 +
 +-- VARCHAR2 로 cast 하면 hex 문자열이 나온다.
 +SELECT CAST(DBMS_CRYPTO.encrypt(UTL_RAW.CAST_TO_RAW ('Secret Data'), 4353, UTL_RAW.CAST_TO_RAW ('MYKEY123'),UTL_RAW.CAST_TO_RAW('01234567')) AS VARCHAR2(100)) FROM dual;
 +-- 결과 : 963C9ABD5C20382996DF9E0849F28C45
 </code> </code>
   * ''UTL_RAW.CAST_TO_RAW ('Secret Data')'' 암호화할 데이터(''Secret Data'')를 binary로   * ''UTL_RAW.CAST_TO_RAW ('Secret Data')'' 암호화할 데이터(''Secret Data'')를 binary로
줄 67: 줄 73:
 public void testDecryption() { public void testDecryption() {
   String CIPHER = "DES/CBC/PKCS5Padding";   String CIPHER = "DES/CBC/PKCS5Padding";
-  byte[] key = DatatypeConverter.parseHexBinary("4D594B4559313233");+   
 +  byte[] key = DatatypeConverter.parseHexBinary("4D594B4559313233"); // "MYKEY123".getBytes("UTF-8") 와 같다.
   byte[] value =   byte[] value =
-     DatatypeConverter.parseHexBinary("24FC80D150E224F2E8CE83229F38B607ADAF312BCB1B4A55");+     DatatypeConverter.parseHexBinary("963C9ABD5C20382996DF9E0849F28C45"); // 암호화 결과의 hex 
   String INIT_VECTOR =   String INIT_VECTOR =
      new String(DatatypeConverter.parseHexBinary("3031323334353637"));      new String(DatatypeConverter.parseHexBinary("3031323334353637"));
줄 95: 줄 102:
     e.printStackTrace();     e.printStackTrace();
   }   }
-  System.out.println("Result " + result);+  System.out.println("Result " + result); //   Result Secret Data
 } }
 </code> </code>
database/oracle/dbms_crypto.1597127557.txt.gz · 마지막으로 수정됨: 2020/08/11 15:32 저자 kwon37xi