我正在處理某些字符串被哈希的項目。爲了確保我總能得到正確的結果,我希望在對它們進行哈希處理之前將它們歸一化。 ...而且還有Unicode規範包。到現在爲止還挺好。go lang版本能夠正常化的字符串
我不想存儲規範化的表單,已經存儲了原始數據 - 我假設客戶喜歡它。我希望多年後,如果我被要求計算散列到相同的字符串我得到相同的結果。現在,如果標準提高了,或者使用最新版本的庫修復了一個錯誤,將會產生不同的結果。我不在乎以前的結果是不是完美的 - 我只是想要同一個。
我的問題是:什麼可能是強制執行一致性的好方法 - 避免我自己的執行。
我確實保留了哈希值,但是我需要重新計算哈希值作爲數據未被篡改的驗證形式。我意識到供應商模式,但我仍想繼續前進,我只希望能夠爲舊數據調用舊版本。也許我要求太多。 – gsf
@icze。是的,我需要最初計算正常形式的代碼。這是我的問題 - 有什麼可以成爲這樣的戰略。顯然永遠留在同一個版本將確保我對這個特定的目標有相同的結果。但這只是我需要考慮的一小部分,向前推進往往被迫從其他因素,我相信我承擔不起。 – gsf
爲什麼我需要規範化是一個非常有效的點。我也在跟自己辯論。由於我工作的項目有很多方面 - 規範化到位將保證語義上相同的對象始終會產生相同的散列(至少對於相同版本的軟件)。沒有這樣的保證可能會或可能不會在系統的其他方面造成侷限性,我寧願在我忽視其他領域併發症的潛在風險之前探索我必須確保的選項1-1。 – gsf