CREATE OR REPLACE FUNCTION TEST_SHA256_ENCRYPT(str VARCHAR2)
RETURN VARCHAR AS
language java name 'SHA256.encrypt(java.lang.String) return java.lang.String'
/
안녕하세요 입니다.
일반적인 서비스를 만들때 비밀번호를 저장시에 암호화를 합니다.
비밀번호는 복호화가 불가능한 방법으로 암호화를 하는데 이때 사용되는 것이 SHA256을 주로 사용합니다.
방식은 여러방식이 있습니다. 서버단 모듈에서 바로 암호화를 하는 방식이 있고
위처럼 DB단에서 암호화를 진행하는 Function을 만들어서 수행할 수 있습니다.
이때 DB Function에서 암호화를 위해서 java method를 호출하는데 보통 기업마다 common library가 존재하기 때문에
해당 library를 호출만 하면 됩니다.
SHA256 보다 더 복잡한 암호화는 SHA512입니다. hash가 더 복잡해집니다.
SHA256에 대한 암호화는 아래와 같은 코드로 구현될 수 있습니다.
public static String getSHA256(String data){
StringBuffer sb = new StringBuffer();
try{
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(data.getBytes());
byte byteData[] = md.digest();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
} catch(Exception e){
e.printStackTrace();
}
return sb.toString();
}
많은 도움이 되면 좋겠습니다.