문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
database:oracle:dbms_crypto [2020/08/11 14:24] kwon37xi [Oracle 암호화 -> Java 복호화] |
database:oracle:dbms_crypto [2020/08/11 16:49] (현재) kwon37xi [Oracle 암호화 -> Java 복호화] |
||
|---|---|---|---|
| 줄 16: | 줄 16: | ||
| -- grant execute on dbms_obfuscation_toolkit to public; | -- grant execute on dbms_obfuscation_toolkit to public; | ||
| </ | </ | ||
| + | |||
| + | ===== 함수 ===== | ||
| + | * '' | ||
| + | * '' | ||
| ===== DBMS_CRYOPTO 상수 읽기 ===== | ===== DBMS_CRYOPTO 상수 읽기 ===== | ||
| 줄 21: | 줄 25: | ||
| <code sql> | <code sql> | ||
| - | begin | + | begin |
| - | | + | dbms_output.put_line(dbms_crypto.DES_CBC_PKCS5); |
| - | | + | end; |
| - | / | + | / |
| </ | </ | ||
| 줄 45: | 줄 49: | ||
| ===== Oracle 암호화 -> Java 복호화 ===== | ===== Oracle 암호화 -> Java 복호화 ===== | ||
| + | * Oracle은 표준 암호화를 사용하기 때문에 표준을 이해하면 Java 전환이 어렵지 않다. | ||
| + | * [[https:// | ||
| + | |||
| <code sql> | <code sql> | ||
| + | |||
| + | -- byte 배열(RAW) 결과 | ||
| select DBMS_CRYPTO.encrypt(UTL_RAW.CAST_TO_RAW (' | select DBMS_CRYPTO.encrypt(UTL_RAW.CAST_TO_RAW (' | ||
| , UTL_RAW.CAST_TO_RAW (' | , UTL_RAW.CAST_TO_RAW (' | ||
| + | |||
| + | -- VARCHAR2 로 cast 하면 hex 문자열이 나온다. | ||
| + | SELECT CAST(DBMS_CRYPTO.encrypt(UTL_RAW.CAST_TO_RAW (' | ||
| + | -- 결과 : 963C9ABD5C20382996DF9E0849F28C45 | ||
| </ | </ | ||
| * '' | * '' | ||
| * 유니코드의 경우 '' | * 유니코드의 경우 '' | ||
| + | * 유니코드에서 RAW(byte[])를 다시 문자열로 변경은 '' | ||
| * '' | * '' | ||
| * '' | * '' | ||
| 줄 59: | 줄 73: | ||
| public void testDecryption() { | public void testDecryption() { | ||
| String CIPHER = " | String CIPHER = " | ||
| - | byte[] key = DatatypeConverter.parseHexBinary(" | + | |
| + | | ||
| byte[] value = | byte[] value = | ||
| - | | + | |
| String INIT_VECTOR = | String INIT_VECTOR = | ||
| new String(DatatypeConverter.parseHexBinary(" | new String(DatatypeConverter.parseHexBinary(" | ||
| 줄 87: | 줄 102: | ||
| e.printStackTrace(); | e.printStackTrace(); | ||
| } | } | ||
| - | System.out.println(" | + | System.out.println(" |
| } | } | ||
| </ | </ | ||
| 줄 107: | 줄 122: | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| - | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||