Skip to content

Instantly share code, notes, and snippets.

@alexandre
Last active November 28, 2020 16:36
Show Gist options
  • Select an option

  • Save alexandre/9890715 to your computer and use it in GitHub Desktop.

Select an option

Save alexandre/9890715 to your computer and use it in GitHub Desktop.
gerar hashes para rotinas no Oracle usando uma classe Java...MD5, SHA1, SHA-256 e SHA-512
create or replace and compile
java source named "Hashador" as
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Hashador{
private static String stringHexa(byte[] bytes) {
String s ="";
//original com StringBuilder, mas o Oracle nao aceitou
for (int i = 0; i < bytes.length; i++) {
int parteAlta = ((bytes[i] >> 4) & 0xf) << 4;
int parteBaixa = bytes[i] & 0xf;
if (parteAlta == 0) s += '0';
s += Integer.toHexString(parteAlta | parteBaixa);
}
return s.toString();
}
public static byte[] gerarHash(String frase, String algoritmo) {
try {
MessageDigest md = MessageDigest.getInstance(algoritmo);
md.update(frase.getBytes());
return md.digest();
}catch (NoSuchAlgorithmException e){
return null; /*msg de erro não vai servir de nada aqui...*/
}
}
public static String teste(String frase, String algoritmo){
return stringHexa(gerarHash(frase, algoritmo));
}
/*public static void main(String[] args) {
String frase = "Brincando com hashes e Java";
System.out.println("Frase original: " + frase + "\n");
System.out.println("MD5: " + stringHexa(gerarHash(frase, "MD5")) + "\n");
System.out.println("SHA-1: " + stringHexa(gerarHash(frase, "SHA-1")) + "\n");
System.out.println("SHA-256: " + stringHexa(gerarHash(frase, "SHA-256")) + "\n");
System.out.println("SHA-512: " + stringHexa(gerarHash(frase, "SHA-512")) + "\n");
}*/
}
/
--
create or replace function gera_hash
(frase in varchar2, alg in varchar2) return varchar2
as language java
name 'Hashador.teste(java.lang.String, java.lang.String) return java.lang.String';
/
--
select gera_hash('Java Rox', 'MD5') from dual;
select gera_hash('Java Rox', 'SHA-1') from dual;
--funcionando SHA1/SHA-1 e MD5, o SHA256 e sha512 entraram no java 1.4.2, aqui só tem java 1.4.1 =\
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment