我想知道如何生成无效数据的哈希键。
我正在开展一个网络和处理数据包的项目。我必须生成哈希表。在哪个数据包头上进行散列。但我不知道数据包头的结构或类别。所以,关于这个的任何想法。我只是想将其转换为无效。并对无效数据进行散列以生成散列键。
任何其他想法。GOOD Logic 将受到欢迎。
查看CityHash,它具有我认为适合您输入的功能:
// Hash function for a byte array.
uint64 CityHash64(const char *buf, size_t len);
据我所知,将 char 用作输入类型只是为了方便 - 例如,它并不意味着如果函数找到零字节,它将停止散列。
还有一个 128 位版本和其他东西。
您可以使用任何接受任何类型指针的散列函数,只要它也接受缓冲区的长度即可。只需投射指针并使用它。大多数散列函数将使用char *
输入和size_t
长度。
不过,从您的问题来看,您可能没有标题的长度。如果你没有这个长度,它是行不通的。