生成(无效 *)数据的哈希键
Generate Hash Key of (void *) data
我想知道如何生成无效数据的哈希键。
我正在做一个网络和处理数据包的项目。我必须生成哈希表。在哪个数据包标头上进行哈希处理。但我不知道数据包标头的结构或类别。所以,关于这个的任何想法。我只是想把它转换为虚空。并对无效数据进行哈希处理以生成哈希键。
任何其他想法。良好的逻辑将受到欢迎。
看看CityHash,它有一个我认为适合你输入的函数:
// Hash function for a byte array.
uint64 CityHash64(const char *buf, size_t len);
据我所知,将 char 用作输入类型只是为了方便——例如,这并不意味着如果函数找到零字节,它将停止散列。
还有一个 128 位版本,以及其他东西。
您可以使用任何接受任何类型的指针的哈希函数,只要它也占用缓冲区的长度。只需投射指针并使用它。大多数哈希函数将使用char *
输入和size_t
长度。
不过,从您的问题来看,您可能没有标题的长度。如果你没有这个长度,它就行不通。
相关文章:
- 如何在 c++ 中生成十六进制二进制数据的 sha256 哈希?
- 为什么C++ STL 哈希表 (unordered_map) 不接受向量作为键
- C++哈希表 - 如何解决自定义数据类型作为键的unordered_map冲突?
- 实现具有浮点键的类似哈希表的数据结构,其中公差内的值被合并在一起
- 错误:哈希函数必须可使用键类型的参数进行调用
- unordered_set是否适合存储矢量<int>元素的数据结构?如果是这样,我将如何实现哈希函数?
- 哈希函数中同一键的不同值和良好的哈希值排序
- 插入不从哈希函数中检索键
- 使用对数据类型的向量的哈希表中的分段错误错误
- C 11多态映射键静态断言失败:哈希函数必须与密钥类型的参数无关
- 在几个键的哈希表处搜索
- 默认情况下,使 std 的数据结构使用我现有的非静态哈希函数"hashCode()"
- 标准::unordered_map中的键与哈希
- 名称和伪ID的数据结构:使用哈希表或bst
- 哈希表,其中键是字符串,值是 c++ 中的函数
- 在光子云上使用哈希表发送数据
- 使用 cpp 生成哈希键
- C++:将自定义哈希键值从 unordered_map 输出到 std::cout 时出错
- 生成(无效 *)数据的哈希键
- 哈希键和值