Pessoal, é o seguinte: eu criei um projeto de testes aqui pra criar o hash SHA256 de uma entrada qualquer
Seguem as classes:
[code]package classes;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
//import sun.misc.BASE64Encoder;
import org.apache.commons.codec.binary.Base64;
public class CriptografiaGenerica {
private MessageDigest messageDigest;
private Base64 encoder;
protected void usarAlgoritmo(String algoritmo) throws NoSuchAlgorithmException {
if ((messageDigest == null) || messageDigest.getAlgorithm() != algoritmo) {
messageDigest = MessageDigest.getInstance(algoritmo);
}
if (encoder == null) {
encoder = new Base64();
}
}
protected String encriptarPorAlgoritmo(String algoritmo, String valor) throws NoSuchAlgorithmException{
if (valor == null) {
throw new IllegalArgumentException("O valor é nulo");
}
usarAlgoritmo(algoritmo);
byte[] hash = messageDigest.digest(valor.getBytes());
return encoder.encodeAsString(hash).toString();
}
}[/code]
[code]package classes;
import java.security.NoSuchAlgorithmException;
public class CriptografiaSHA256 extends CriptografiaGenerica {
public String encriptar(String valor) throws NoSuchAlgorithmException {
return encriptarPorAlgoritmo("SHA-256", valor);
}
}[/code]
[code]package classes;
import java.security.NoSuchAlgorithmException;
public class Teste {
public static void main(String[] args) throws NoSuchAlgorithmException{
CriptografiaSHA256 sha256 = new CriptografiaSHA256();
System.out.println("abc em SHA-256: " + sha256.encriptar("abc"));
}
}[/code]
Ela funciona que é uma beleza, retornando “ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=” para a entrada abc.
Só que preciso fazer isso com javascript também, então peguei vários algoritmos prontos por ai, e o resultado para a mesmo entrada abc retorna o valor “ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad”.
Pra quem quiser verificar a do javascript aqui está o link, é só informar “abc” la no campo e ele gera o hash.
To nisso o dia todo, e não encontrei resposta do pq disso ainda. Quem tiver alguma vaga idéia do que seja, eu agradeceria muito se ajudasse.
Muito obrigado desde já, abraços.