我想創建一個任意長度字符串的唯一哈希(16個字符長)。是否有一個好的庫爲C++實現了MD5或SHA-1,我可以實現這個功能? (也可能是如何使用它的一個例子)字符串的唯一哈希
Q
字符串的唯一哈希
1
A
回答
5
Pigeonhole Principle解釋了爲什麼你問的唯一性是不可能的。
+0
MD5是如何工作的,因爲它將任意長度的字符串散列爲32位十六進制數值 – Aly 2010-03-14 23:37:25
+0
是的,但是如果通過MD5運行足夠多的字符串,最終會得到兩個具有相同散列的不同字符串:http:// www。 google.com/search?q=md5+collision – 2010-03-14 23:56:59
1
您需要openssl庫。它具有用於此目的的標準加密哈希的實現。
1
nss提供了許多散列和加密算法,並且擁有比OpenSSL更寬鬆的許可證。
相關問題
- 1. 哈希字符串大小
- 2. 哈希名字符串
- 3. (產生唯一的哈希)
- 4. 的Perl $字符串哈希錶轉換
- 5. 600M語句的Java哈希字符串
- 6. 字符串中的Perl哈希對值
- 7. Python中的哈希字符串
- 8. 字符串的持久哈希碼
- 9. 哈希後的JavaScript檢索字符串
- 10. 創建百萬個短字符串的唯一整數/浮點哈希值
- 11. 從字符串和int創建哈希
- 12. 轉換哈希字符串在Ruby中
- 13. 哈希unicode字符串在python
- 14. SHA-1哈希與字符串混合
- 15. SHA1哈希十六進制字符串
- 16. 哈希表在C(整型,字符串[])++
- 17. 用線性探測字符串哈希
- 18. 從String.GetHashCode解密哈希字符串?
- 19. 字符串唯一字符
- 20. 獨特價值哈希值=唯一哈希值?
- 21. 將字符串轉換爲哈希字符串:值格式
- 22. 使用哈希表查找字符串中的字符
- 23. 生成一個字符串哈希來比較兩個子字符串
- 24. 轉換一個哈希表,以鍵值對的字符串
- 25. 試圖散列字符串統一的哈希表?
- 26. 從字符串中提取一種特殊的哈希
- 27. 創建一個字符串的哈希值,並在C#中uinteger
- 28. 在哈希表中創建字符串哈希值的時間複雜度
- 29. 查找字符串數組項哈希陣列,並與相應的哈希
- 30. 將SHA256哈希字符串轉換爲Python中的SHA256哈希對象
你要求的是根本不可能的。有更多的仲裁長度字符串比16個字符長度的字符串,所以_unique_哈希是不可能的。有很多庫實現MD5和SHA-1 algorthims,但是你能否澄清你的需求? – 2010-03-14 22:31:50
任意長度字符串的固定長度哈希不可能是唯一的。 – sepp2k 2010-03-14 22:32:21
是否可以枚舉字符串並在之後構建散列函數?你在尋找http://en.wikipedia.org/wiki/Perfect_hash_function? – 2010-03-14 22:41:38