[{"data":1,"prerenderedAt":185},["ShallowReactive",2],{"content:zh:hmac-generator":3},{"id":4,"title":5,"body":6,"description":158,"extension":159,"faq":160,"kind":176,"locale":177,"meta":178,"navigation":179,"path":180,"seo":181,"seoTitle":182,"stem":183,"__hash__":184},"pages\u002Fzh\u002Fhmac-generator.md","HMAC 生成器",{"type":7,"value":8,"toc":150},"minimark",[9,13,17,20,23,26,42,52,55,95,104,108,111,114,142],[10,11,12],"h2",{"id":12},"本工具计算什么",[14,15,16],"p",{},"HMAC 使用共享密钥、消息和哈希函数计算消息认证码。默认算法为 HMAC-SHA256，也支持 SHA384 和 SHA512。它不是“把密钥与消息拼接后做一次哈希”，也不会加密或隐藏消息内容。",[14,18,19],{},"消息统一按 UTF-8 编码。密钥有独立编码选项：UTF-8 将可见字符作为文本处理，Hex 则把每两个十六进制字符解释为一个原始字节。例如 Hex 密钥 4a656665 与 UTF-8 密钥 Jefe 对应相同字节。Hex 模式拒绝空格、非十六进制字符及奇数位输入，避免按错误编码计算密钥。",[14,21,22],{},"示例使用 RFC 4231 的公开测试数据，不是为真实业务生成的新密钥。工具允许使用空密钥复现测试，但不能将空密钥用于实际消息认证。密钥只保留在当前标签页内存中，不写入下载结果，完成后请清空。生产协议的校验仍应在自己的应用中采用经过审查的实现。",[10,24,25],{"id":25},"可核对的示例",[14,27,28,32,33,32,36,32,39],{},[29,30,31],"code",{},"HMAC-SHA256"," · ",[29,34,35],{},"UTF-8",[29,37,38],{},"Jefe",[29,40,41],{},"what do ya want for nothing?",[43,44,50],"pre",{"className":45,"code":47,"language":48,"meta":49},[46],"language-text","5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843\n","text","",[29,51,47],{"__ignoreMap":49},[10,53,54],{"id":54},"如何计算与比较",[56,57,58,67,78,85,88],"ol",{},[59,60,61,62,66],"li",{},"在",[63,64,65],"strong",{},"消息内容","中输入需要认证的文本。工具使用其 UTF-8 字节，不删除空格，也不改变换行。",[59,68,69,70,73,74,77],{},"输入",[63,71,72],{},"密钥","并选择",[63,75,76],{},"密钥编码","。UTF-8 将密钥作为文本；Hex（十六进制）将每两个十六进制字符解析为一个字节，不接受空格或奇数个字符。",[59,79,80,81,84],{},"选择 HMAC-SHA-256、HMAC-SHA-384 或 HMAC-SHA-512，再点击",[63,82,83],{},"生成哈希","。HMAC 不会自动计算；修改消息、密钥、编码或算法后，需要再次点击生成。",[59,86,87],{},"使用相同消息字节、密钥字节和 HMAC 算法得到的参考值进行核对。SHA-256、SHA-384、SHA-512 的完整结果分别为 64、96、128 个十六进制字符。",[59,89,90,91,94],{},"复制或下载结果后，点击",[63,92,93],{},"清空","，移除表单中的消息、密钥和计算结果。",[14,96,97,100,101,103],{},[63,98,99],{},"示例","使用 RFC 4231 的公开测试数据和 UTF-8 密钥 ",[29,102,38],{},"，不能把它当成应用的私有密钥。TXT、CSV 导出只包含算法和 HMAC 值，不包含消息或密钥。本页一次处理一条文本消息，不支持文件 HMAC 或逐行 HMAC。",[10,105,107],{"id":106},"限制隐私与下一步","限制、隐私与下一步",[14,109,110],{},"消息的 UTF-8 数据上限为 10 MiB，解码后的密钥上限同样为 10 MiB；Hex 编码每个字节需要两个十六进制字符。HMAC 在 Web Worker 中计算，可以取消。密钥不会写入浏览器存储，也不会进入 URL 或导出文件。使用结束后请清空表单；释放浏览器内存不等于经过认证的安全擦除。正常的页面和资源请求仍会发送到托管服务器。",[10,112,113],{"id":113},"相关工具与指南",[115,116,117,124,130,136],"ul",{},[59,118,119],{},[120,121,123],"a",{"href":122},"\u002Fzh\u002Ffile-md5","文件校验工具",[59,125,126],{},[120,127,129],{"href":128},"\u002Fzh\u002Fguides\u002Fmd5-checksum-windows","Windows 校验步骤",[59,131,132],{},[120,133,135],{"href":134},"\u002Fzh\u002Fguides\u002Fmd5sum-linux","Linux md5sum 指南",[59,137,138],{},[120,139,141],{"href":140},"\u002Fzh\u002Fguides\u002Fmd5-vs-sha256","MD5 与 SHA-256 的区别",[14,143,144],{},[120,145,149],{"href":146,"rel":147},"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc4231.html",[148],"nofollow","RFC 4231",{"title":49,"searchDepth":151,"depth":151,"links":152},2,[153,154,155,156,157],{"id":12,"depth":151,"text":12},{"id":25,"depth":151,"text":25},{"id":54,"depth":151,"text":54},{"id":106,"depth":151,"text":107},{"id":113,"depth":151,"text":113},"使用消息和明确编码的密钥，生成 HMAC-SHA256、HMAC-SHA384 或 HMAC-SHA512。","md",[161,164,167,170,173],{"question":162,"answer":163},"为什么修改密钥后，结果会消失？","修改消息、密钥、编码或算法会使旧结果失效，需要再次点击“生成哈希”。HMAC 不会自动计算，以免把旧结果误当成新输入的结果。",{"question":165,"answer":166},"UTF-8 密钥 Jefe 与 Hex 密钥 4a656665 一样吗？","一样，它们代表相同的四个字节。但在 UTF-8 模式中输入 4a656665，会使用八个文本字符，得到的是另一组密钥字节。",{"question":168,"answer":169},"空密钥会怎样计算？","工具按零字节密钥计算标准 HMAC，不会替换为其他密钥。这可用于复现测试，不适合用来保密或认证真实业务消息。",{"question":171,"answer":172},"支持文件 HMAC 或每行分别计算 HMAC 吗？","不支持。本页仅处理一条 UTF-8 文本消息，以及一组 UTF-8 或 Hex 密钥。文件和逐行哈希是另外的无密钥计算功能。",{"question":174,"answer":175},"复制或导出时会包含密钥吗？","不会。复制只保留完整 HMAC 值；TXT、CSV 包含标识、算法和结果，不包含消息原文或密钥。","tool","zh",{},true,"\u002Fzh\u002Fhmac-generator",{"title":5,"description":158},"HMAC 生成器 — md5hash.net","zh\u002Fhmac-generator","OjBY-vjuvyFbfVBCE6i5FUXSc4jAUpRDbfn3O6YqmLw",1792048884664]