我想创建一个任意长度字符串的唯一哈希(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