0
我試圖分析代碼來解析其中有4000個字符的最大字符串長度的字符串。編碼器使用以下公式生成密鑰哈希表密鑰生成
(fromid^(from_id<<18)^(toid<<2)
^(toid<<16)^(repetition<<4)^(repetition<<14)^
(tbranch_id<<6)^(tbranch_id<<12)^
(fbranch_id<<8))^(fbranch_id<<10)
我不明白這樣一個公式背後的原理嗎?
原作者是否可用?你有沒有試過要求他解釋? – Juliet 2010-01-21 10:15:05
@juliet不幸沒有 – 2010-01-21 10:22:07
如果這是java或類似的,那麼^是排他性的,而<<是左移運算符。 (在F#中有些不同!)代碼似乎是將這些字段異或,但只有在旋轉它們之後纔會有不同的數量。我不知道你爲什麼提到字符串的長度。 散列函數採用一個潛在的大輸入(例如,長的字符串),併產生該字符串短的「指紋」。一個好的散列函數將確保很難找到兩個產生相同輸出的輸入。這可能是一個難以理解的概念。也許作者不理解呢? – John 2010-01-21 10:46:56