回答
有很多hashing algorithms,但其基本思想是快速和(幾乎)唯一地提出一個數據標識符。這可以用作表格中的索引,以便快速查找數據。大多數散列算法都有衝突,其中兩部分數據會散列到相同的值,但對於最佳算法來說,這是非常罕見的。
舉個例子,爲什麼這可能是有用的,比方說,我整理了我的城市的整個電話簿。現在,當我想查找某個人的號碼時,現在不需要進行二分搜索,而只需要通過哈希算法運行他們的名字,然後直接即可查看我表格中的索引。
謝謝,這有幫助。 – ritch 2010-04-28 00:16:30
即使是那個名字搜索,我們也需要使用二進制或者線性權限?那麼把它轉換爲散列值有什麼意義 – 2016-03-12 18:09:22
@bharathmuppa不,那是不對的。您將該名稱散列爲整數並直接轉到該索引。 – 2016-03-12 18:21:16
假設你要求某人基本上解釋一個用於散列思想的數組。現在想象一個巨大的陣列,您想要查找僅在一個陣列插槽中的特定數據片段。您可以使用輸入數據並使用它來計算索引,而不是迭代數組。使用您用於在數組中存儲數據的相同公式,您可以跳轉到所需數據的位置而不是循環。
謝謝,這有助於。 – ritch 2010-04-28 00:16:11
散列算法試圖使大數據的比較更容易。不是將數據與平等進行比較,而是比較散列值。
有很多不同的散列算法,其中一些有像MD5,SHA1,SHA256等加密散列算法。它有兩個相同的散列值,你可以確定,數據也是一樣的。
謝謝,這也有幫助。 – ritch 2010-04-28 00:20:46
散列表示數據之間的1對1關係。這是一種常用的語言數據類型,儘管有時稱爲字典。哈希算法是一種接受輸入並始終具有相同輸出的方式,其他方式稱爲1對1函數。理想的散列函數是當這個相同的過程總是產生一個獨特的輸出。所以你可以告訴別人,這裏是一個文件,這裏是它的md5散列。如果在此期間文件已損壞,則md5散列值將是不同的值。
實際上,散列函數總是會產生一個相同大小的值,例如md5()將總是返回128位,不管輸入大小如何。這使得1對1的關係成爲不可能。 A cryptographic hash function需要額外的預防措施,使得難以用相同的輸出產生2個不同的輸入,這被稱爲碰撞。這也使得很難扭轉這一功能。哈希函數用於密碼存儲,因爲如果攻擊者在哪裏獲取密碼的哈希,那麼它會強制攻擊者在哈希可以使用它登錄之前破壞哈希。打破哈希攻擊將採取單詞列表或英語詞典,並找到所有相應的哈希值,然後遍歷每個密碼尋找匹配的列表。
md5(),sha0和sha1()都容易受到散列衝突攻擊,絕不應該用於任何與安全有關的事情。相反,應該使用sha-2家族的任何成員,例如sha-256。
- 1. 散列算法
- 2. RAR3散列算法
- 3. 60bit散列算法
- 4. 日期的散列算法
- 5. 無法計算散列
- 6. 填充MD5散列算法
- 7. 鹽漬散列算法
- 8. 字符串散列算法
- 9. ASP.NET MVC 4散列算法
- 10. scrypt使用散列算法嗎?
- 11. 內部應用散列算法
- 12. 使用Linux用來散列用戶密碼的算法散列字符串?
- 13. 散列字符串的最佳算法
- 14. 散列算法的實現將串號
- 15. 小文件的散列算法
- 16. 散列數據。適當的算法?
- 17. 分散算法
- 18. 散列運算 - Angularjs
- 19. 散列碼計算
- 20. 請推薦一些Python散列算法
- 21. 單向函數,散列算法
- 22. 合併散列刪除算法
- 23. asp.net:存儲密碼散列算法
- 24. 「視覺散列算法」用於人類觀察/檢查? (不是視覺散列,但算法)
- 25. 離散行的算法
- 26. Android,從文件中計算SHA-1散列,最快的算法
- 27. 實現Dijkstra的在Java中使用算法的散列碼
- 28. 用於文件檢測的最佳散列算法
- 29. MD5散列算法使用哪種類型的轉換?
- 30. 用於路徑緩存的快速,無碰撞散列算法?
你不小心哈希算法 – mquander 2010-04-28 00:06:03
有很多「哈希算法」,以及散列的許多用途。也許你可以在你的問題上更具體一些? – Amber 2010-04-28 00:06:34
您忘記了 – 2010-04-28 00:07:09