문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
database:oracle:dbms_crypto [2020/08/11 14:33] kwon37xi [함수] |
database:oracle:dbms_crypto [2020/08/11 16:49] (현재) kwon37xi [Oracle 암호화 -> Java 복호화] |
||
|---|---|---|---|
| 줄 18: | 줄 18: | ||
| ===== 함수 ===== | ===== 함수 ===== | ||
| - | * '' | + | * '' |
| * '' | * '' | ||
| 줄 25: | 줄 25: | ||
| <code sql> | <code sql> | ||
| - | begin | + | begin |
| - | | + | dbms_output.put_line(dbms_crypto.DES_CBC_PKCS5); |
| - | | + | end; |
| - | / | + | / |
| </ | </ | ||
| 줄 49: | 줄 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 | ||
| </ | </ | ||
| * '' | * '' | ||
| 줄 64: | 줄 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(" | ||
| 줄 92: | 줄 102: | ||
| e.printStackTrace(); | e.printStackTrace(); | ||
| } | } | ||
| - | System.out.println(" | + | System.out.println(" |
| } | } | ||
| </ | </ | ||
| 줄 112: | 줄 122: | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| - | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||