728x90
1) PLSQL 로 SHA512 JAVA class 생성
CREATE_COMPILE_JAVA_SOURCE_SHA512.sql
create or replace and compile java source named SHA512 as
import java.security.MessageDigest;
public class SHA512 {
public static String encrypt(String tmpStr) throws Exception{
//SHA-512 적용
MessageDigest md = MessageDigest.getInstance("SHA-512");
md.update(tmpStr.getBytes());
byte[] msgb = md.digest();
StringBuffer sb = new StringBuffer();
for(int i = 0; i < msgb.length; i++){
byte temp = msgb[i];
String str = Integer.toHexString(temp & 0xFF);
while(str.length() < 2){
str = "0" + str;
}
str = str.substring(str.length() - 2);
sb.append(str);
}
return sb.toString();
}
}
※ SQL 클라이언트 상에서 자바클래스를 입력하고 실행하면 빌드가 됩니다.
2) 위에서 생성한 class 를 이용할수 있도록 function 생성
CREATE_FUNCTION_F_ENC_SHA512.sql
create or replace FUNCTION F_ENC_SHA512
(
P_STRING IN VARCHAR2
) RETURN VARCHAR2 as language java name 'SHA512.encrypt(java.lang.String) return String';
※ java 를 바로 sql 문에 사용할수 없기 때문에. function 안에다가 java 문을 사용하여 function 실행하여 java 를 사용한다.
3) 테스트
SQL 클라이언트에서 아래 쿼리를 수행하여 테스트 해봅니다.
select F_ENC_SHA512('123') from dual ;
참고: https://dowhiletrue.tistory.com/entry/ORACLE-JAVA-오라클-JAVA-함수처럼-사용 [누리누리한세상]
'PaaS > Data' 카테고리의 다른 글
(Oracle DB) Oracle2Oralce 다른 스키마로 이관하는 과정 (0) | 2021.07.26 |
---|---|
(Oralce DB) Oralce 서버 구축 (0) | 2021.07.26 |
Oracle To PostgreSQL import(Centos) (0) | 2021.05.12 |
Oracle To PostgreSQL export(Centos) (0) | 2021.05.12 |
PostgreSQL to Oracle DB링크 만들기(Centos, Docker) (0) | 2021.05.12 |