자바를 이용해 sha256 함수를 만들어 보겠습니다.
1. 오라클에 자바 클래스를 생성합니다.
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "SHA256PasswordEncoder{" AS
import java.lang.*;
import java.io.*;
public class SHA256PasswordEncoder{
public static String encode(String passwd){
try {
if (passwd != null && !passwd.equals("")) {
java.security.MessageDigest digest = java.security.MessageDigest.getInstance("SHA-256");
byte[] bytData = passwd.getBytes();
digest.update(bytData);
byte[] buffer = digest.digest();
passwd = "";
for (int i = 0; i < buffer.length; i++) {
passwd = passwd + Integer.toHexString(buffer[i] & 0xFF).toUpperCase();
}
}
return passwd;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
2. 만든 자바클래스를 이용하여 함수를 만듭니다.
create or replace function gnuhash_sha256(passwd VARCHAR2) RETURN VARCHAR AS
language java name 'SHA256PasswordEncoder.encode(java.lang.String) return java.lang.String';
3. 함수가 정상적으로 생성되었는지 테스트합니다.
select gnuhash_sha256('a') sha256_passwd
from dual
;--CA978112CA1BBDCAFAC231B39A23DC4DA786EFF8147C4E72B9807785AFEE48BB
함수가 정상적으로 생성되었음을 확인할 수 있습니다.
'DB > Oracle' 카테고리의 다른 글
오라클, jdk버전에 따른 ojdbc.jar (0) | 2019.04.18 |
---|---|
오라클 값 개행으로 입력하기 (0) | 2019.04.01 |
오라클 SQL Developer 날짜형식 변경하기 (0) | 2019.01.12 |
오라클 홑따옴표(') 조건으로 조회하기 (0) | 2019.01.01 |
오라클 데이터 복구 timestamp (0) | 2019.01.01 |