Last active
November 28, 2020 16:36
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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