2016-11-06 121 views
1

https://jwt.io/有JWT令牌下面的例子:智威湯遜 - 如何計算簽名

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

但是,如果我用http://www.freeformatter.com/hmac-generator.html做一個HMAC SHA 256簽署:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9

(使用密鑰「祕密」),它給了我這樣的簽名:

4c9540f793ab33b13670169bdf444c1eb1c37047f18e861981e14e34587b1e04

我該怎麼辦,以獲得正確的簽名:

TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

+1

你得到的結果是十六進制。你想要的結果是base64。將十六進制解碼爲原始數據,然後將其編碼爲base64。或者如果你喜歡它,直接做。 –

+1

謝謝盧克 - 如果你把這個作爲答案,我會標記它是正確的 –

回答

1

結果你有十六進制。你後面的結果被編碼爲base64。

您只需將十六進制轉換爲原始數據,然後將其編碼爲base64即可。我沒有檢查數值是否相同,但這是最可能發生的問題!