1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Geração de MD5 manualmente X Apache Commons Codec (Garantir sempre o mesmo hash)

Bom dia, gostaria de entender o seguinte. Estou fazendo alguns testes para tentar entender, nos meus testes unitários estou fazendo os seguintes cenários:

  • Manualmente: Quando eu testo a geração de um hash MD5 e testo rodando apenas o teste ele gera um MD5 e quando eu utilizo mvn clean install package,ele esta gerando outro MD5 para mesma String.
String password = "password";
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(password.getBytes(StandardCharsets.UTF_8), 0, password.length());
String encrypted = new BigInteger(1, digest.digest()).toString(16);
System.out.println("MD5: " + encrypted);
  • Utilizando Apache Commons Codec: Diferente de manualmente quando eu utilizo a lib do apache, sempre me gera o mesmo hash MD5.
String encrypted = DigestUtils.md5Hex("password");
System.out.println("MD5: " + encrypted);

Minha dúvida é: Eu posso confiar que a lib do apache SEMPRE vai gerar o mesmo hash para mesma String independente de CHARSET, etc?

Pesquisei pelo Google afora, mas não achei nada que me dissesse explicitamente "SEMPRE IRÁ GERAR O MESMO HASH".

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags apache ou faça a sua própria pergunta.