1. Create java file e.g SHA1Converter.java with below code:
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;
public class SHA1Converter
{
public static String SHA1(String text) throws NoSuchAlgorithmException,
UnsupportedEncodingException
{
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(text.getBytes("UTF-8"));
byte raw[] = md.digest(); //step 4
String hash = (new BASE64Encoder()).encode(raw); //step 5
return "{SHA-1}"+hash;
}
}
2. Compile java file
javac SHA1Converter.java
3. Load compile class file using openjava command. Mention schema for which you want this java class to be made available
loadjava -u
password:
arguments: '-u' 'dgmt' '-schema' 'dgmt' '-v' '-resolve' 'SHA1Converter.class'
creating : class DGMT.SHA1Converter
loading : class DGMT.SHA1Converter
resolving: class DGMT.SHA1Converter
Classes Loaded: 1
Resources Loaded: 0
Sources Loaded: 0
Published Interfaces: 0
Classes generated: 0
Classes skipped: 0
Synonyms Created: 0
Errors: 0
4. Written function to use java class and return string encrypted using SHA1
create or replace
FUNCTION gnuhash_sha1 (string IN VARCHAR2) RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'SHA1Converter.SHA1(java.lang.String) return java.lang.String';
5. Use above function
select gnuhash_sha1('anand') from dual;
Result : {SHA-1}uXP3dL/qtTIztPNHvhFOnKey0A8=
1 comment:
not useful
Post a Comment