生成(无效 *)数据的哈希键

Generate Hash Key of (void *) data

本文关键字:数据 哈希键 无效 生成      更新时间:2023-10-16

我想知道如何生成无效数据的哈希键。

我正在做一个网络和处理数据包的项目。我必须生成哈希表。在哪个数据包标头上进行哈希处理。但我不知道数据包标头的结构或类别。所以,关于这个的任何想法。我只是想把它转换为虚空。并对无效数据进行哈希处理以生成哈希键。

任何其他想法。良好的逻辑将受到欢迎。

看看CityHash,它有一个我认为适合你输入的函数:

// Hash function for a byte array.
uint64 CityHash64(const char *buf, size_t len);

据我所知,将 char 用作输入类型只是为了方便——例如,这并不意味着如果函数找到零字节,它将停止散列。

还有一个 128 位版本,以及其他东西。

您可以使用任何接受任何类型的指针的哈希函数,只要它也占用缓冲区的长度。只需投射指针并使用它。大多数哈希函数将使用char *输入和size_t长度。

不过,从您的问题来看,您可能没有标题的长度。如果你没有这个长度,它就行不通。