암호화 항목중 일부분인 단방향 SHA256 해시 암호화 함수 생성하기를 설명한다.
1. 메모장을 열어 아래 내용을 붙여넣고 파일명을 SHA256Encryptor.java 로 합니다.
---------------------------------- 단방향(SHA256) -----------------------------------
CREATE OR REPLACE and RESOLVE JAVA SOURCE NAMED "SHA256Encryptor.SHA256" AS /*파일명*/
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHA256Encryptor {
public static String SHA256(String str){
String SHA = "";
try{
MessageDigest sh = MessageDigest.getInstance("SHA-256");
sh.update(str.getBytes());
byte byteData[] = sh.digest();
StringBuffer sb = new StringBuffer();
for(int i = 0 ; i < byteData.length ; i++){
sb.append(Integer.toString((byteData[i]&0xff) + 0x100, 16).substring(1));
}
SHA = sb.toString();
}catch(NoSuchAlgorithmException e){
e.printStackTrace();
SHA = null;
}
return SHA;
}
public static void main(String[] args) {
String in_str = args[0];
String out_str = SHA256(in_str);
System.out.println(">>in["+in_str+ "],out[" + out_str + "]" + out_str.length() );
}
}
2. 콘솔을 열어 아래와 같이 실행하여 JAVA 파일을 오라클에 적재한다.
생성 : C:\>loadjava -u 아이디/암호@계정 -v -resolve C:\SHA256Encryptor.java
원격지에서 실행가능하며 DBA 권한이 필요합니다.
3. 오라클접속하여 아래와 같은 함수를 만들고 실행하여 함수를 생성한다.
CREATE OR REPLACE FUNCTION SHA265(NAME VARCHAR2) RETURN VARCHAR2
AS LANGUAGE JAVA
NAME 'SHA256Encryptor.SHA256(java.lang.String) return java.lang.String';
4. 테스트를 수행한다.
SELECT SHA256('1234') FROM DUAL
반응형
'IT > 데이타베이스' 카테고리의 다른 글
[MySQL] database 와 table 의 크기 조회 (0) | 2018.05.18 |
---|---|
[오라클] 오라클 DB 용량 계산 (0) | 2018.05.18 |
[오라클] Simple Name 마스킹 함수 (0) | 2018.05.18 |
[MySQL] default character set 변경하기 (0) | 2018.05.18 |