1 votes

Problème de hachage MD5 avec Java

Une implémentation java crée deux digest différents pour une même chaîne d'entrée, si je l'exécute en tant qu'application autonome ou à l'intérieur d'une application web.

L'application autonome correspond avec oracle dbms L'implémentation est

    MessageDigest md5 = MessageDigest.getInstance("MD5");

    if (md5 != null) {
        md5.reset();
        newHashByte = md5.digest(msg.getBytes());
    }

    newHash = convertToString(newHashByte);

L'implémentation de la conversion de l'hexagone en chaîne est

StringBuffer result = new StringBuffer(64);

for (int i = 0; i < digestBits.length; i++)
    hexDigit(result, digestBits[i]);

return result.toString();

Nous vous remercions vivement si vous pouvez nous aider à résoudre ce problème.

7voto

ZZ Coder Points 36990

Je soupçonne que vous avez des encodages par défaut différents. Utilisez le bon encodage comme ceci,

newHashByte = md5.digest(msg.getBytes("utf-8"));

2voto

rmeador Points 15107

Où se trouve msg proviennent-ils dans chaque cas ? Je pense qu'il est probable que vous ayez un caractère de nouvelle ligne à la fin dans un cas mais pas dans l'autre. Il est également possible que vos codages de caractères soient définis différemment dans les deux scénarios. Je doute fortement que quelque chose d'autre change dans votre exemple, à l'exception des éléments suivants msg .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X