J'essaie de migrer un calcul SHA-512 de Java vers le nœud JS et je ne peux pas sembler avoir les mêmes résultats ...
code Java (qui a l'air standard de ): p> sortie: p> nodejs: p> sortie: p> Qu'est-ce que je fais mal? P> Note Strard>: J'utilise Java 8 et noeud 10.13 P> P> P>
3 Réponses :
Dans le nœud, vous utilisez HMAC-SHA-512, mais en Java, vous utilisez simplement SHA-512 et concaténant la clé et le texte en plainte. Ce n'est pas la façon dont le HMAC fonctionne. Vous devez également utiliser HMAC-SHA-512 dans Java également:
9ba1f63365a6caf66e46348f43cdef956015bea997adeb06e69007ee3ff517df10fc5eb860da3d43b82c2a040c931119d2dfc6d08e253742293a868cc2d82015
En fait, j'ai eu besoin de l'inverse (pour réparer le code JS), mais cela a aidé! :) Merci!!!
Si quelqu'un cherche au noeud JS correction, j'ai fait grâce à @DavidConrad, voici: sortie: p>
pour nodejs em>, vous pouvez ajouter la clé avec des données pour obtenir java em> équivalent hachage. require('crypto').createHash(algo).update(data + key).digest()
Votre résultat NODEJS est le bon selon Freeformatter .
Vous appelez
getBytes () code> sans spécifier un codage de caractères. En fonction de vos données et de la plate-forme par défaut, codez sur votre système, cela peut modifier ce que vous passez pour le sel et le plaintext.
Ohhh ... donc le code Java n'est donc pas une standard
SHA-512 code>? Si oui, comment puis-je le reproduire? @Gendarme
Merci @davidconrad, j'ai essayé d'ajouter un codage au code Java, mais cela n'a pas aidé (les deux codes ont été couru sur le même système)