工具用的顺手吗?
你的反馈能帮助我们做得更好
在线计算字符串的FNV哈希值,支持FNV1、FNV1a等算法及多种输入格式,适用于数据校验与散列应用。
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
FNV(Fowler–Noll–Vo)是一组非密码学哈希函数:输入字节序列经过固定步骤映射为固定宽度的哈希值。它可以把不同长度的输入压缩到固定宽度的结果,适用于一般散列任务;32位和64位表示可按系统约定选择。
两种变体都会从对应位宽的初始值开始,逐字节更新哈希状态,并按该位宽保留结果。FNV-1先乘以FNV素数,再与输入字节异或;FNV-1a则先异或,再相乘。32位和64位版本的输出宽度不同,因此同一文本在不同变体下会得到不同摘要。比较结果时,算法变体和输入字节解释必须一致。
本页可选择FNV-1-32、FNV-1a-32、FNV-1-64、FNV-1a-64。输入区接收文本,点击计算后查看结果。
| 变体 | 位宽 | 字节处理顺序 |
|---|---|---|
| FNV-1-32 | 32位 | 先乘,再异或 |
| FNV-1a-32 | 32位 | 先异或,再乘 |
| FNV-1-64 | 64位 | 先乘,再异或 |
| FNV-1a-64 | 64位 | 先异或,再乘 |
先按需要的输出宽度筛选,再确认运算顺序,能更快找到与现有程序一致的选项。
指南
按步骤完成操作,并通过示例核对输入与结果。
粘贴短字符串或标识内容。若应用处理的是文件原始字节、带换行文本或其他字符编码,需保证与目标系统采用相同的输入字节序列;不要把视觉上相同但编码不同的文本视为必然相同的输入。
从四种FNV变体中选择与接收端一致的一项。已存储在数据库或协议中的哈希值不能随意更换算法,否则新旧值无法直接比较。
输入和选择完成后按计算按钮。页面会显示结果文本的大小写形式,并提供Base64字段;复制后应保留所选变体的信息,避免只保存一个无法解释的值。
若结果需跨语言或跨系统交换,使用共同约定的测试向量核实字符编码、算法版本和输出格式。不要仅凭“都是FNV-1a”就推断不同实现使用了完全相同的字节输入和序列化方式。
场景
查看这项工具在不同工作与生活流程中的用法。
在普通程序的数据结构中,可将稳定的短文本映射为定长键,以便索引或分组。设计时仍应保留原始键或冲突处理逻辑,因为散列值不是输入的唯一身份凭证。
需要快速检查两段测试文本是否产生相同散列时,可固定变体后计算。若结果用于安全校验或面对恶意构造输入,则应改用符合目标威胁模型的密码学哈希方案。
问答
集中解答高频疑问与容易混淆的问题。
不会。输出宽度是算法变体的一部分,切换位宽后结果会改变;对接其他程序时要使用一致的变体。
两者核心差别是每个输入字节的处理顺序:FNV-1先乘后异或,FNV-1a先异或后乘。应用双方必须选同一变体和同一位宽。
对照输入时应保持算法变体、文本编码、换行和前后空格一致。若程序先序列化了对象或转换了字符,再计算哈希,输入字节序列也会随之不同。
须知
使用前了解适用范围、结果限制与必要提醒。
FNV输出的是哈希摘要,不是可解密的密文,也不使用密钥提供机密性;它属于非密码学哈希。32位或64位输出空间有限,不同输入可能产生相同结果,知道哈希值也不能证明输入可信。请勿用于密码保存、加密、数字签名、身份验证或防篡改证明。页面显示的Base64字段是对返回的摘要文本再编码,不等同于对原始摘要字节编码;需要与外部系统交换时,应先统一字节和输出规范并用测试向量验证。
推荐
查找相关工具、专题与可用的 API 能力。