MurmurHash3_x86_32()需要種子參數。我應該使用什麼樣的價值?它有什麼作用?什麼是MurmurHash3種子參數?
回答
種子參數是一種讓您隨機化散列函數的方法。您應該在散列函數的相同應用程序中爲所有對散列函數的調用提供相同的種子值。然而,每次調用你的應用程序(假設它正在創建一個新的哈希表)可以使用不同的種子,例如一個隨機值。
爲什麼提供?
一個原因是攻擊者可能使用散列函數的屬性來構造拒絕服務攻擊。他們可以通過爲散列函數提供字符串來實現這一點,這些字符串都會散列到相同的值,從而破壞散列表的性能。但是,如果您對程序的每次運行使用不同的種子,攻擊者必須使用的字符串集纔會發生變化。
此處代表鹽值爲seed
。向其提供隨機但私有的(對你的應用程序)數據,因此散列函數將爲相同的數據提供不同的結果。例如,使用此功能對您的數據進行摘錄,以檢測第三方對原始數據的修改。他們幾乎無法複製有效的散列值,直到他們知道您使用的鹽爲止。
鹽(或種子)也用於防止不同數據的散列衝突。例如,您的數據塊A和B可能會生成相同的散列:h(A)== h(B)。但是,如果提供某種附加數據,則可以避免這種衝突情況。碰撞是非常罕見的,但有時鹽是一種避免具體數據集的方法。
其實這是doubtfull。對於非密碼散列函數,「sault」的目的是什麼? – Lol4t0 2012-02-11 15:33:31
MurmurHash是一個非加密散列函數。對於_secure_消息摘要,這不是一個合適的選擇。 – 2012-02-11 15:34:17
在給定的實現seed
構建初始化向量使用。它是任意值,爲不同的數據選擇不同的值會降低衝突率。但請注意,那你應該知道一雙seed
- data
那麼。
- 1. murmurhash3中的參數是什麼意思?
- 2. C++我們應該在MurmurHash3參數中傳遞什麼?
- 3. 什麼是隨機種子隨種子提供種子?
- 4. 什麼是@參數?
- 5. 這是什麼rake db:種子錯誤是什麼意思?
- 6. 在murmurhash3
- 7. 什麼是TensorFlow中的種子?
- 8. 什麼是隨機對象種子
- 9. 隨機:什麼是默認種子?
- 10. 關於遞歸什麼是種子值?
- 11. 什麼是C++中的RND /種子?
- 12. 什麼是Java中的隨機種子?
- 13. PHP Murmurhash3和MySql Murmurhash3有時不匹配
- 14. 函數參數是什麼?
- 15. 參數中的3個點是什麼?/什麼是可變參數(...)參數?
- 16. 爲什麼數據庫沒有種子?
- 17. ON_LBN_SELCHANGE的參數是什麼?
- 18. ns是什麼參數?
- 19. 什麼是父參數?
- 20. addTouchEventListener的參數是什麼
- 21. Renderscript,`in`參數是什麼?
- 22. 什麼是(0,somefunc)(參數)
- 23. 什麼是關係參數?
- 24. phpMyAdmin:什麼是參數null?
- 25. 什麼是「。」參數在PHP?
- 26. 什麼是參數值?
- 27. 什麼是overwritting參數
- 28. C++類參數是什麼?
- 29. 什麼是Twilio URL參數?
- 30. 什麼是sysctl()的參數?
這是有關,但不完全等同於的想法[通用散列(http://en.wikipedia.org/wiki/Universal_hashing):而不是一個散列函數,你有一個整個家庭(在此情況下,MurmurHash3是家庭,每個可能的種子價值給你在該家庭的特定功能)。如果您發現您的輸入數據恰巧會產生散佈不良的散列(例如,由於攻擊),您可以選擇一個新的隨機種子值並重新散列數據;數據不太可能對您的新種子價值產生不良分佈,因此您擊敗了攻擊。 – 2012-02-11 15:42:16