簡體   English   中英

Java和JavaScript中不同的md5哈希結果

[英]Different md5 hash results in Java and JavaScript

我正在嘗試將現有代碼從Java轉換為JavaScript(具體來說是node.js)。 使用兩種語言創建相同String的md5哈希值會導致以下不同結果:

Java中 Arrays.toString(MessageDigest.getInstance("MD5").digest("test".getBytes()));

退貨

[9,-113,107,-51,70,33,-45,115,-54,-34,78,-125,38,39,-76,-10]

而在JS crypto.createHash("md5").update("test", "ascii").digest();

退貨

[9,143,107,205,70,33,211,115,…]

使用crypto 1.0.1有人可以向我解釋嗎? 我已經使用了不同的編碼,但是並沒有影響結果。

您正在Java中使用帶符號的字節。 實際上是一樣的。 我會投票支持未簽名的版本,但是如果您必須與Java版本兼容,只需arr.map(function(e) {return e >= 128 ? e - 256 : e})

這兩個哈希是相同的。 由於無符號/有符號類型,您會看到不同的數字,但是它們具有相同的值。 嘗試將值強制轉換為無符號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM