xxHash 生成器
在一个界面中计算任意文本的 xxHash 校验和,支持 XXH32、XXH64、XXH3-64 和 XXH3-128,也可以选择单个变体。该工具会将输入编码为 UTF-8,应用可选的 32 位种子,并以 xxhsum 输出的规范十六进制格式返回每个摘要。开发者可用它验证缓存键、哈希表种子,以及依赖这种超高速非加密哈希的数据管道。
常见问题
什么是 xxHash?
xxHash 是 Yann Collet 开发的一系列超高速非加密哈希函数。XXH32 和 XXH64 是经典变体,XXH3 则是较新的设计,支持 64 位和 128 位输出。它应用于压缩工具、数据库和游戏引擎。
该工具会计算哪些变体?
该工具会计算 XXH32、XXH64、XXH3-64 和 XXH3-128。选择“所有变体”时会同时显示四种结果,否则只显示所选变体。每个值都以大端十六进制格式输出,与 xxhsum 的显示一致。
空输入和 abc 的参考值是什么?
种子为 0 时,空输入的 XXH32 结果为 02cc5d05,XXH64 为 ef46db3751d8e999,XXH3-64 为 2d06800538d394c2,XXH3-128 为 99aa06d3014798d86001c324468d497f。abc 的结果依次为 32d153ff、44bc2cf5ad770999、78af5f94892f3950 和 06b05ab6733a618578af5f94892f3950。
种子有什么作用?
种子会改变初始状态,因此相同文本在不同种子下会得到不同哈希值。若要匹配使用已知种子进行哈希的系统,请使用相同种子。该工具接受从 0 到 4294967295 的整数,默认值为 0。
xxHash 安全吗?
不安全。xxHash 的设计目标是速度和良好的分布性,而非抵御攻击者。任何人都能构造碰撞,因此如需防范篡改以确保完整性,请使用 SHA-256 或 BLAKE3。
我应该使用 XXH3 还是 XXH64?
XXH3 在现代处理器上速度更快,尤其适用于较短的输入,也是新代码的推荐选择。XXH64 仍常见于现有格式,例如 Zstandard 帧校验和就使用了部分 XXH64 值。
为什么我的库会输出不同的字节顺序?
有些库会输出哈希的原始小端字节,而不是数值。此工具使用 xxHash 规范中的规范大端表示,与 xxhsum 一致。若要与小端转储进行比较,请反转字节顺序。
文本如何编码?
输入会按原样转换为 UTF-8 字节进行哈希。不同的换行符或尾随空格都会产生不同的哈希值。
可以用此工具对文件进行哈希吗?
不可以,此工具只对粘贴的文本进行哈希。处理文件时,请安装 xxhsum 并运行 xxhsum -H0、-H1、-H3 或 -H2,分别计算 XXH32、XXH64、XXH3-64 和 XXH3-128。
我最多可以对多少文本进行哈希?
每次请求最多可处理 5 MiB 文本。所有变体都在服务器上通过 WebAssembly 计算,且不会存储输入内容。