我正在嘗試構建一個使用API密鑰進行訪問的身份驗證機制。在不同的機器上運行時,SHA256Managed Class會返回不同的結果嗎?
爲了防範中繼攻擊,我使用當前日期時間對API密鑰進行哈希處理,然後在服務器端進行檢查。
使用相同的代碼對客戶端和服務器進行哈希處理,我會從兩個調用中得到不同的結果。
I.E:客戶端哈希它的API密鑰,並將哈希鍵和日期時間「鹽」發送到服務器。
服務器將採用預期的api密鑰並使用客戶端發送的日期時間進行散列。
我的散列永遠不匹配(客戶端散列!=服務器散列)。
這隻有當我運行在單獨的機器上的客戶端和服務器(實際上是另一個開發人員試圖寫入客戶端部分)
一切正常,當我在我的本地機器上測試時(運行客戶機和服務器部分並嘗試認證)。
問題 給定相同的輸入,.NET SHA256Managed類的ComputeHash方法在不同的計算機上運行時會返回不同的結果嗎?
你能提供一個可重複的例子嗎? – ken2k 2012-02-23 16:17:57
創建一個隨機salt(以字節爲單位)並將其發送給服務器。我需要文本,將鹽編碼爲十六進制字符串。 – 2012-02-23 21:18:07