c++ - 需要一个散列函数来从 ipv6 16 字节地址和 TCP 2 字节端口号中创建 32 位值

标签 c++ c networking network-programming ipv6

我想创建一个 32 位的哈希值。我有 16 字节的源和目标 ipv6 地址以及 2 字节的源和目标端口号。

32 位输出 = (Src IP,Dst Ip,Src Port,Dest Port)

如果散列函数能很好地沿着 32 位空间分布实体,那就更好了。我想将结果用作索引。

复习

最佳答案

另一个,可能有用的引用:

General Purpose Hash Function Algorithms

CityHash by Google

请注意,很难制作无碰撞保证的哈希函数(相同哈希码中没有不同的输入结果)。这个问题有很多解决方案,最简单的一种是开放寻址。

Open Addressing

关于c++ - 需要一个散列函数来从 ipv6 16 字节地址和 TCP 2 字节端口号中创建 32 位值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6531147/

相关文章:

C++ 和 C arg_list 函数

python - 复数和分形

networking - netstat -g 组IP定义在哪里

docker - 没有到 docker 容器内主机的路由

ios - 如何在 iOS 中使用 Objective-C 进行 POST 调用和发送参数

c++ - CRT 未初始化

c++ - 使用从未打算在常量表达式中使用的 constexpr 变量是否有好处?

c++ - 如何将静音音频数据写入音频流?

c++ - 水泥效果-艺术效果

c - 好的老初学者 killer : Pointers