hash-collision

    4熱度

    2回答

    當我爲此谷歌,我有點與一個答案衝突,因爲這些算法不斷改進和新的漏洞被發現,並且新問題一直出現......關於什麼算法使用的很多建議是隻是老舊,或者在他們是最好的方式的時候讓他們保持思想。 我想在這裏說得很清楚:我不是在談論密碼。我在談論消息摘要,而不是密碼哈希。 我可以繼續使用md5作爲消息摘要的第一個註釋(它的名稱是正確的),但是後來我記得比那些更現代的算法有更多的碰撞。但那麼,是什麼讓這些新算

    0熱度

    1回答

    任何一個可以給出一個2字符串的例子,只包含字母字符,這將產生與ELFHash相同的散列值? 我需要這些來測試我的代碼。但製作起來並不容易。而令我驚訝的是,互聯網上有很多各種散列函數的示例代碼,但都沒有提供碰撞字符串的例子。 以下是ELF哈希,以防您需要它。 unsigned int ELFHash(const std::string& str) { unsigned int hash

    11熱度

    1回答

    我需要比較大塊數據的相等性,並且我需要比較每秒很多,快速。每個對象都保證具有相同的尺寸,並且可能/可能它們可能只是略有不同(在未知位置)。 我已經看到,從下面的交互式會話中,如果差異接近字符串的末尾,則使用==運算符對於字節字符串的運算可能會更慢,並且如果在起始位置附近存在差異,則運算速度可能會非常快。 我認爲可能有某種方法來加速使用某種散列,當然計算md5哈希和比較是一個公平的重擊較慢,但pyt

    5熱度

    1回答

    我想了解SHA0哈希函數是如何被破壞的。我知道利用生日問題/鴿子保持原則,發現了哈希碰撞。 http://www.mail-archive.com/cryptography%40metzdowd.com/msg02554.html包含一個示例消息。 我很難找到/理解: 這是否意味着有一種及時的數學方法總是產生哈希碰撞? 我最終能找到一個給定的m1的m2,使得m1!= m2,sha(m1)== sh

    0熱度

    1回答

    假設根據字符串「temp」的哈希函數的數組索引爲155,並且位置155被預先佔用,則嘗試位置156。假設位置156是可用的,所以這個條目保存在位置156而不是155.稍後,我發現另一個字符串「another_temp」,它映射到位置156,再次保存在下一個可用位置157處。 問題是:稍後如果我想查找「another_temp」的位置,我怎麼知道它是157而不是156,即使散列函數返回156? 謝謝

    3熱度

    2回答

    我目前的散列表實現是使用線性探測,現在我想要移動到二次探測(後來鏈接,也許雙哈希)。我讀過一些文章,教程,維基百科等......但我仍然不知道我應該做什麼。 線性探測,基本上,有1步,這很容易做到。在搜索時,插入或從哈希表中移除元素,我需要計算一個哈希併爲我這樣做: index = hash_function(key) % table_size; 然後,當查找,插入或通過表中刪除我循環,直到我

    0熱度

    1回答

    現在我的哈希表計算插入到哈希表中的每個元素的數量。我用這個計數和總散列表大小來計算加載因子,當它達到70%時,我重新調整它。 我在想,也許我應該只計算插入的元素與填充空插槽,而不是所有的人。導致我使用的碰撞方法是單獨的鏈接。因子負荷持續增加,但是如果可能有少量碰撞在哈希表上留下大量空閒時隙。 您可能正在考慮如果我有這麼多的碰撞,也許我沒有使用最好的散列方法。但那不是重點,我使用了其中一種已知的哈希

    2熱度

    3回答

    我想了解如何在散列表中使用鍵排序/插入檢查。 我已經瞭解到,當我將一個對象添加到散列表時,它會在運行時檢查那裏是否已經輸入了相同的密鑰。 在我的測試,我已經2個哈希表的鍵與填充: 1-整數 2 - 我已經重寫的對象GetHashCode方法回到這裏總是1. 我的問題:當第一個測試在添加相同的int鍵時打破,第二個測試不是!怎麼來的?在插入時應檢查的哈希碼全部返回1. 提前致謝! 我的代碼: cla

    13熱度

    5回答

    我知道哈希無限數量的字符串轉換爲32b int必須產生碰撞,但我期望從哈希函數一些不錯的分佈。 這兩個字符串具有相同的哈希值是不是很奇怪? size_t hash0 = std::hash<std::string>()("generated_id_0"); size_t hash1 = std::hash<std::string>()("generated_id_1"); //hash0 ==

    5熱度

    3回答

    我有下面的代碼來產生對象的哈希: public int GetHashCode(MyType obj) { return (obj.Prop1.GetHashCode() + obj.Prop2.GetHashCode() + obj.Prop3.GetHashCode()).GetHashCode(); } 即我添加所有屬性的哈希碼,然後採取這個哈希。 在回顧中,一位同事建議說