计算任意字符串或编码数据的CRC32哈希值,用于验证数据完整性。
工具用的顺手吗?
你的反馈能帮助我们做得更好
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
本工具对输入框中的文本计算一个 32 位循环冗余校验值,并以固定 8 位的大写十六进制显示,例如 CBF43926。输入改变后结果会自动更新;空输入不显示校验值。它只有文本输入和十六进制结果,不提供文件上传、算法参数调整、Hex/Base64 解码或十进制、Base64 输出。CRC32 的用途是让两端在采用相同数据和相同计算约定时快速比对结果,从而发现内容是否可能在复制、保存或传输过程中发生了意外变化。计算只取决于当前输入和固定算法参数,不查询外部数据。
这里采用常见的反射式 CRC-32 参数组:正常形式的生成多项式为 0x04C11DB7,查表计算使用其反射表示 0xEDB88320;初始值为 0xFFFFFFFF,每个输入单元按最低有效位方向更新寄存器,结束后再与 0xFFFFFFFF 异或。最终数值限制在 32 位无符号范围内,再补足前导零并转成 8 个大写十六进制字符。
显示值 = CRC-32(输入序列),格式为 8 位大写 Hex
一个十六进制字符表示 4 位,因此 32 位结果正好需要 8 个字符;前导零属于结果的一部分,不能在比对时随意删掉。
CRC 本质上针对字节序列,而输入框接收的是文本。本工具逐个读取文本的 UTF-16 代码单元,并将每个代码单元的低 8 位送入 CRC 过程。对 ASCII 范围内的英文、数字和常见符号,这与直接处理对应单字节数据一致;对中文、表情符号以及其他非 ASCII 字符,它通常不会等同于把文本先编码成 UTF-8 后再计算。因此,同一段肉眼可见的文字在采用不同字符编码或字节转换规则的软件中,可能得到不同 CRC32。
Hex 和 Base64 在这里也只是普通文本。例如输入 313233,计算对象是字符 3 1 3 2 3 3,不是三个字节 0x31 0x32 0x33;输入 Base64 字符串同理,不会先还原原始数据。要复核协议报文、文件或已编码字节,必须先确认对方要求的确切字节序列与编码规则。
指南
按步骤完成操作,并通过示例核对输入与结果。
确认目标值对应的是文本还是原始字节,并核对 CRC 变体、字符编码、换行形式以及是否包含首尾空格。若需要与本工具稳定互验,优先使用明确的 ASCII 文本。
在输入框键入或粘贴文本。大小写、空格、制表符和换行都会参与计算;即使只改动一个字符,也应视为不同输入。
结果区会自动显示 8 位大写 Hex。复制时保留所有前导零;若参考值带 0x 前缀或使用小写字母,可以去掉前缀并忽略字母大小写后比较,但八个十六进制数位应完全一致。
先核对隐藏空白和换行,再核对输入是否被当作 Hex/Base64 解码,最后检查对方使用的多项式、初值、反射方式和最终异或值。只比较名称“CRC32”并不足以保证参数完全相同。
输入 123456789,工具显示 CBF43926。这组字符全部位于 ASCII 范围,可用于快速检查输入是否多了空格或换行。另一个可复现例子是输入 Hello World,结果为 4A17B156;其中大小写和中间空格都不可省略。若输入 Hello World (末尾多一个空格),结果就会改变。
场景
查看这项工具在不同工作与生活流程中的用法。
开发者拿到明确写出的测试字符串和期望 CRC 时,可原样输入并复制结果,用于排查样例录入、参数理解或输出格式问题。前提是样例按单字节 ASCII 解释。
协作者可在相同工具、相同输入约定下分别计算配置片段或标识字符串。结果不同可以确认文本不同;结果相同只能作为快速一致性检查,仍不能替代原文逐字确认。
学习 CRC 时,可依次修改字母大小写、插入空格或添加换行,观察 8 位结果如何变化,从而理解校验对象是精确输入序列,而不是文字的语义。
问答
集中解答高频疑问与容易混淆的问题。
最常见原因不是显示错误,而是输入序列或参数不同。请依次确认字符编码、换行与空格、Hex/Base64 是否被解码,以及多项式、初值、输入/输出反射和最终异或值。非 ASCII 文本尤其需要先统一文本到字节的转换规则。
可以粘贴,但它们会按可见字符参与计算,不会被解码。若你要计算 Hex 所代表的原始字节或 Base64 解码后的内容,应使用能够明确选择输入格式的字节校验方式。
这是正常现象。CRC32 是固定 32 位值,十六进制应保留为 8 位;高位为零时,工具会补上前导零。丢弃前导零虽然可能不改变数值,却会破坏固定长度表示,容易造成自动比对失败。
不能直接校验。文件 CRC 针对文件的原始字节,而本工具没有读取文件字节的入口。把文件名、路径、Base64 文本或部分文件内容粘贴进来,都不等于对整个文件计算 CRC32。
须知
使用前了解适用范围、结果限制与必要提醒。
在算法参数和输入转换完全相同的前提下,两个 CRC32 不同,可以确定参与计算的输入不同;两个 CRC32 相同,却不能严格证明输入一定相同,因为 32 位结果数量有限,不同输入可能发生碰撞。
推荐
查找相关工具、专题与可用的 API 能力。