我想搜索字符串中的子字符串,例如,在'abcdefgh'中搜索'cdef'。但我需要使用某種算法對子字符串進行預處理,以便隱藏它,以便沒有人知道我在搜索它。以md5()爲例。那麼在'abcdefgh'中搜索md5('cdef')的最快方法是什麼?在「abcdefgh」中搜索md5(「cdef」)
1
A
回答
5
由於兩個原因,沒有辦法做到這一點。
在高層次上,有一個加密散列函數的整點同時也讓別人確認原始字符串散列爲正確的值的方式來掩蓋原始字符串的內容。加密哈希(即使MD5現在已經被破壞)具有這樣的特性,即使對輸入字符串進行微小的調整,也會對哈希的輸出產生巨大的改變,所以在子字符串的MD5和字符串本身之間應該沒有關聯。如果可以確定一個字符串在散列之後是否是另一個字符串的子字符串,那麼這將是一個巨大的安全漏洞,並且會完全使散列無效。
多個字符串可以具有相同的哈希碼,這意味着如果您只有一個字符串的MD5,就沒有辦法知道原始字符串是否是其他字符串的子字符串。您永遠無法區分具有子字符串MD5的情況或恰好碰巧與子字符串具有相同散列的非子字符串的MD5。
您需要從根本上改變您的方法才能使其發揮作用。
希望這會有所幫助!
相關問題
- 1. 在cdef類中調用cdef
- 2. DQL搜索MD5字符串?
- 3. md5使用異常搜索
- 4. 搜索在搜索框中
- 5. 在Jupyter cdef運行Cython
- 6. 索引與MD5在SQL Server
- 7. CDEF在Cacti中查找%值的函數
- 8. Cython:dynamic「cdef extern from xxx」
- 9. 搜索在搜索
- 10. 搜索:搜索()vs cts:搜索()在MarkLogic
- 11. 在BestBuy中搜索由UPC搜索
- 12. 搜索問號(?)在Azure中搜索
- 13. 在搜索欄中實現Google搜索
- 14. 在二叉搜索樹中搜索值
- 15. 在PHP中搜索Google搜索結果
- 16. 在搜索引擎中自動搜索
- 17. 短語搜索和高亮搜索:在Marklogic中搜索
- 18. 如何使用搜索:搜索API在txt文件中搜索?
- 19. 使用AJAX搜索引擎在Chrome中搜索搜索引擎
- 20. 在python中搜索索引
- 21. 搜索文件和生成MD5哈希值
- 22. MySQL:對於條件搜索,md5編碼速度快嗎?
- 23. 在Hashtable中搜索
- 24. 搜索在NSDictionary中
- 25. 在GridView中搜索
- 26. 在ElasticSearch中搜索
- 27. 在NSMutableArray中搜索
- 28. 在TStrings中搜索
- 29. 在JTable中搜索
- 30. 在c#中搜索
您是否爲此而結婚至md5,或者是否會進行任何使搜索字符串非顯而易見的轉換(例如,rot13)? – Shog9
我不必使用md5。你明白了。我只是想讓搜索字符串不明顯。有沒有其他方法可以完成這項工作? – colordancer
當然 - 如果您使用某種形式的可逆加密,問題很容易(特別是如果它像rot13; -P一樣微不足道) - 只需在搜索前解密字符串!如果你發佈了一個新的問題,提供你想要阻止的細節,人們將能夠給你提供更好(更具體)的想法 - 你投入多少工作主要取決於你期望觀察者的決心'正在尋找挫敗。 – Shog9