我有一個字符串:散列內容,然後轉換爲十六進制結果
String message = "{\"name\":\"三菱グループ\"}\n"
操作,我想對這個消息進行:
- 哈希使用消息SHA-256算法中
- 將步驟1中的散列轉換爲小寫十六進制字符串
我的應用程序產生
25335a59763ad40ae13d1d4a011efcdc2aa2c4885295aebeb393bc96bb927f66
有人得到不同的結果嗎? 我,一直在抓我的頭,因爲遠程服務器堅持正確的結果是
20de051e351ebc53c83902a72ac916e5a46228fc3e5ec070bf441612e20164d9
我,只要郵件保持不變的假設下,這些操作的結果將始終是相同的,無論你在同一條消息上執行這兩個鏈接操作多少次。如果情況並非如此,請告訴我。
我添加另一測試消息(換行符移除): 用於
String message = "{\"name\":\"三菱グループ\"}";
我的代碼產生
7902fb68f1f90f700788613e7f667968beb4abd724abb545e00e01d65e74a772
和所產生的遠程服務器
d3df5e50703eb5ff2fd17210af93b6b2ef1e5640c89787405352998d955a4e63
由於
這不是一個在線工具,但是這個消息是作爲一個字符串傳輸的。 – musicsquad
又增加了一個例子,這次沒有換行符 – musicsquad
@musicsquad我將'{「name」:「三菱グループ」}'粘貼到在線計算器中,並將結果返回,即'7902fb68f1f90f700788613e7f667968beb4abd724abb545e00e01d65e74a772'。很顯然,服務器不像您的程序那樣以相同的字節序列計算SHA。 – dasblinkenlight