Repolode
Cyan4973

Cyan4973/xxHash

一个极快的非加密哈希算法 C 库,可在各平台生成一致的 32/64/128 位哈希值。

Star
11,410
Fork
946
未关闭 Issue
25
最近提交
9天前

这是什么?

xxHash 是一个用 C 编写的非加密哈希算法,适用于对哈希速度有要求的场景,例如哈希表、布隆过滤器、校验和以及数据去重。它可移植性强,在小端和大端系统上产生完全相同的结果,算法定型后输出在各版本之间保持稳定。

库中提供 XXH32、XXH64 和 XXH3 三种算法,其中 XXH3 支持 64 位和 128 位(XXH128)输出,并使用向量化运算。新项目推荐默认使用 XXH3_64bits()。项目还附带命令行工具 xxhsum,用于生成和校验文件校验和;通过定义 XXH_INLINE_ALL 可以以纯头文件方式集成。

xxHash 不是密码学哈希,不能用于签名、密码存储或其他需要抗攻击性的场景。构建选项涵盖内联、字节序、内存访问方式,以及为嵌入式或资源受限环境减小二进制体积的配置。

核心功能

  • 01提供 32 位、64 位和 128 位非加密哈希。
  • 02在小端和大端平台上输出完全一致。
  • 03XXH3 和 XXH128 支持 AVX2、SSE2 等向量化实现。
  • 04提供流式 API,可哈希大小未知的数据。
  • 05通过 XXH_INLINE_ALL 支持纯头文件集成。
  • 06可通过编译宏缩减二进制体积或关闭功能,适配嵌入式环境。

适用场景

  • 为哈希表或布隆过滤器的键计算哈希,尤其是处理小数据时。
  • 使用 xxhsum 命令行工具快速生成和校验文件校验和。
  • 在存储或数据去重流程中识别重复数据块。
  • 在对性能敏感的 C 或 C++ 应用中嵌入快速哈希功能。

快速上手

  1. 1

    使用 make 构建库和 xxhsum 命令行工具

    make
  2. 2

    使用 xxhsum 通过 XXH3 对此 README 文件进行哈希

    ./xxhsum -H3 README.md

使用前须知

  • xxHash 不是加密哈希,不能用于签名或密码存储。
  • 元数据中的许可证显示为 NOASSERTION,使用前请查看仓库中的许可证文件。

标签

#hash-function#checksum#non-cryptographic#performance#hash-table#data-structures#dispersion#hash#hash-checksum#hash-functions

常见问题

xxHash 是什么?
一个极快的非加密哈希算法 C 库,可在各平台生成一致的 32/64/128 位哈希值。 xxHash 是一个用 C 编写的非加密哈希算法,适用于对哈希速度有要求的场景,例如哈希表、布隆过滤器、校验和以及数据去重。它可移植性强,在小端和大端系统上产生完全相同的结果,算法定型后输出在各版本之间保持稳定。
xxHash 可以免费使用吗?用的什么许可证?
xxHash 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
xxHash 还在维护吗?
活跃维护中。xxHash 最近一次提交是在 2026年10月29日。
xxHash 适合用来做什么?
为哈希表或布隆过滤器的键计算哈希,尤其是处理小数据时。 使用 xxhsum 命令行工具快速生成和校验文件校验和。 在存储或数据去重流程中识别重复数据块。 在对性能敏感的 C 或 C++ 应用中嵌入快速哈希功能。
xxHash 怎么安装和运行?
使用 make 构建库和 xxhsum 命令行工具: make 使用 xxhsum 通过 XXH3 对此 README 文件进行哈希: ./xxhsum -H3 README.md
在哪里获取 xxHash?
源代码和安装说明在 GitHub 上:https://github.com/Cyan4973/xxHash

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目