[{"data":1,"prerenderedAt":281},["ShallowReactive",2],{"guide:\u002Fguides\u002Fmd5-vs-sha256-file-checksum":3,"guides:list":213},{"id":4,"title":5,"body":6,"category":190,"description":191,"extension":192,"faq":193,"meta":203,"navigation":204,"path":205,"seo":206,"stem":207,"toolSlugs":208,"updated":211,"__hash__":212},"guides\u002Fguides\u002Fmd5-vs-sha256-file-checksum.md","MD5 和 SHA-256 怎么选：文件校验入门",{"type":7,"value":8,"toc":180},"minimark",[9,13,18,21,34,38,41,44,110,113,117,126,138,141,145,148,156,159,163,166,169,177],[10,11,12],"p",{},"下载系统镜像、开发工具包时，页面角落常躺着一串乱码，旁边标着 MD5 或 SHA-256。它不是版本号，是文件的指纹：把你下载到的文件重算一遍，对得上，说明你手里这份与发布方那份一个字节不差；对不上，说明传输路上出了问题，直接安装可能白忙一场。这篇文章讲两件事：指纹是怎么算出来的，MD5 与 SHA-256 两个名字各自该在什么时候认。",[14,15,17],"h2",{"id":16},"哈希是什么文件的指纹","哈希是什么：文件的指纹",[10,19,20],{},"哈希算法把任意大小的内容压成一段固定长度的摘要：一句话算出来是 32 个字符，一个 4GB 的镜像算出来还是 32 个字符。支撑它做校验的是三条性质：",[22,23,24,28,31],"ul",{},[25,26,27],"li",{},"确定性。同一份内容，在这台机器或那台机器、这个浏览器或那个浏览器里算，结果分毫不差——跨设备比对因此才成立；",[25,29,30],{},"牵一发动全身。内容改一个标点、换一种换行符，摘要立刻面目全非，而且从摘要上完全看不出「差了多少」，只知道「不一样」；",[25,32,33],{},"单向。摘要推不回原文，所以它只能用来对答案，既不是加密，也当不了存放原文的容器。",[14,35,37],{"id":36},"md5-vs-sha-256","MD5 vs SHA-256",[10,39,40],{},"两个名字都出自哈希算法家族，差别可以压缩成两点：摘要长度与抗碰撞能力。",[10,42,43],{},"MD5 的摘要长 128 位，写成 32 个十六进制字符；SHA-256 长 256 位，64 个字符。摘要越长，可取的值越多，人为构造「内容不同、摘要相同」的难度就越高。而 MD5 连同更老的 SHA-1，这道防线已经被攻破——攻击者有成体系的构造手法，能让两份不同的内容拥有同一个 MD5。SHA-256 至今站得住。",[45,46,47,62],"table",{},[48,49,50],"thead",{},[51,52,53,56,59],"tr",{},[54,55],"th",{},[54,57,58],{},"MD5",[54,60,61],{},"SHA-256",[63,64,65,77,88,99],"tbody",{},[51,66,67,71,74],{},[68,69,70],"td",{},"摘要长度",[68,72,73],{},"128 位，32 个十六进制字符",[68,75,76],{},"256 位，64 个十六进制字符",[51,78,79,82,85],{},[68,80,81],{},"抗碰撞",[68,83,84],{},"已被攻破，可刻意构造碰撞",[68,86,87],{},"仍被视为安全",[51,89,90,93,96],{},[68,91,92],{},"浏览器内速度",[68,94,95],{},"软件实现，分块计算、带进度",[68,97,98],{},"原生 WebCrypto 接口，更快",[51,100,101,104,107],{},[68,102,103],{},"适用场景",[68,105,106],{},"意外损坏校验、去重、内容指纹",[68,108,109],{},"防篡改、签名等安全场景的起步线",[10,111,112],{},"选型口径一句话：判断「文件坏没坏、传没传对」，场景里没有对手，MD5 依然够用，主流软件源至今仍在公布 MD5 校验值；一旦存在「可能有人刻意调包」这层顾虑，就从 SHA-256 起步，别让 MD5 独自扛。",[14,114,116],{"id":115},"场景一下载文件校验","场景一：下载文件校验",[10,118,119,120,125],{},"最经典的用法，是拿着官网公布的校验值做核对。打开",[121,122,124],"a",{"href":123},"\u002Ftools\u002Fsecurity\u002Ffile-hash","文件哈希校验","页：",[127,128,129,132,135],"ol",{},[25,130,131],{},"把文件拖进投放区，MD5、SHA-1、SHA-256 三种摘要同时开算，MD5 一路显示读取进度；",[25,133,134],{},"算完把官网给的校验值粘进「校验值比对」框，页面自动判断它与哪种算法匹配——匹配，文件完整；三种全不匹配，多半是下载或传输途中损坏，重新下载比折腾排查更省时间；",[25,136,137],{},"比对忽略大小写与空格：官网惯用全大写、或写成带空格的分组，都不影响匹配；页面上的「大写显示」开关只改展示与复制的格式，不动计算结果。",[10,139,140],{},"大文件也不用怵。MD5 在这一页按块分片流式读取，算一块丢一块，内存占用与文件总大小基本无关；SHA-1 \u002F SHA-256 走浏览器原生 WebCrypto，接口要等算完才一次性交出结果，这正是页面上只有 MD5 带进度条的原因。文件超过约 512MB 时，耗时与内存开始吃设备性能，特别大的文件建议分段处理，或者干脆换命令行工具。这些计算全部在浏览器内完成，文件不会被上传。",[14,142,144],{"id":143},"场景二传输后确认一致","场景二：传输后确认一致",[10,146,147],{},"「我发你的文件，你收到的是不是同一份」——经过网盘、聊天工具各转一手之后，这个问题值得验证。办法很朴素：两边各算一次摘要，对字符。",[10,149,150,151,155],{},"内容是文本，用",[121,152,154],{"href":153},"\u002Ftools\u002Fdeveloper\u002Fmd5","MD5 计算","页最顺手：把内容粘进输入框，摘要即时出现，不需要点任何按钮；两边各粘一次，比对那串 32 位小写十六进制即可。想先验证流程，点「示例」填入 hello world，应得到 5eb63bbbe01eeed093cb22bb8f5acdc3。顺带一提，部分老系统说的「16 位 MD5」，是取这 32 位结果的第 9–24 位，需要兼容时手动截取就行；对方给的是大写时，忽略大小写逐字符对照。",[10,157,158],{},"万一对不上，先按顺序查三件事，而不是急着怀疑工具：文本是否带了看不见的首尾空白——多一个换行、末尾多一个空格，摘要就完全变样，比对两台机器上的同名配置文件时，换行符差异就是常见元凶；两边算的是否真是同一个文件——内容改一个字节，摘要就是另一副面孔；两边选的算法是否同名同款。三点逐一排完还对不上，再去想别的。",[14,160,162],{"id":161},"场景三去重与内容指纹","场景三：去重与内容指纹",[10,164,165],{},"文件名会骗人，摘要不会。两份文件名字不同、来源不同，疑似同一个东西：各算一次指纹，一致就是同一份内容，比打开逐段翻看省事得多。批量场景更有价值——给一批素材或文档各算摘要、登记成清单，之后任何时候抽查，对一下指纹就知道内容有没有被误改。代码片段、配置内容是否与线上一致，同样粘进文本页算一算，比肉眼逐行扫快。",[14,167,168],{"id":168},"安全边界",[10,170,171,172,176],{},"MD5 的问题从来不是「会算错」，而是「能被刻意撞上」。凡是有对手的场景——验证文件是否被人动过、软件签名、口令存储——都不能只靠它。防篡改校验从 SHA-256 起步：本站文件哈希页一次算齐三种摘要，",[121,173,175],{"href":174},"\u002Ftools\u002Fdeveloper\u002Fsha-hash","SHA 哈希","页还能处理文本与其他长度的 SHA 摘要、HMAC 签名。存密码是另一个课题，请交给 Argon2、scrypt、bcrypt 这类专用慢哈希——它们的设计目标是让攻击者算得慢，与校验求快正好相反。",[10,178,179],{},"回到开头那串乱码：知道它是什么、该认哪个名字，下载后的半分钟核对就从走过场变成实打实的保障。",{"title":181,"searchDepth":182,"depth":182,"links":183},"",2,[184,185,186,187,188,189],{"id":16,"depth":182,"text":17},{"id":36,"depth":182,"text":37},{"id":115,"depth":182,"text":116},{"id":143,"depth":182,"text":144},{"id":161,"depth":182,"text":162},{"id":168,"depth":182,"text":168},"general","下载文件怕被篡改、传完文件怕损坏？讲清 MD5 与 SHA-256 的差异与各自适用场景，文本与文件摘要怎么算、校验值怎么比对，以及分块流式处理大文件的实操步骤。","md",[194,197,200],{"q":195,"a":196},"MD5 还安全吗？","MD5 已有成熟碰撞手法，不能用于签名、口令存储等对抗性场景；但做「下载文件是否损坏、传没传对」这类非对抗校验依然够用，主流软件源也还在提供 MD5 校验值。",{"q":198,"a":199},"两个工具算出来的值不一样？","先确认输入一致：是否带了隐藏的首尾空白、是否是同一个文件（改一个字节结果完全不同）、算法是否选的同一个。三者对上，结果必然一致。",{"q":201,"a":202},"大文件（几个 GB）算得动吗？","分块流式计算让内存占用与文件总大小基本无关，MD5 还带读取进度；但超过约 512MB 后耗时与内存仍取决于设备性能，特别大的文件建议分段处理或改用命令行工具。",{},true,"\u002Fguides\u002Fmd5-vs-sha256-file-checksum",{"title":5,"description":191},"guides\u002Fmd5-vs-sha256-file-checksum",[209,210],"developer\u002Fmd5","security\u002Ffile-hash","2026-09-15","WiYHS3T8zQrYxJdFAROHHFDqnAD3eAzxWrFHvAG1Ka0",[214,222,229,237,239,247,253,259,267,274],{"path":215,"title":216,"description":217,"category":218,"toolSlugs":219,"updated":221},"\u002Fguides\u002Fbatch-watermark-images","批量给图片加水印防搬运：文字水印与 Logo 水印实操","一次给几十张图片加文字或 Logo 水印：九宫格位置与平铺铺满怎么选、透明度旋转怎么调才既防搬运又不毁图，水印大小随图片宽度等比缩放的原理与批量导出步骤。","image",[220],"image\u002Fwatermark","2026-09-10",{"path":223,"title":224,"description":225,"category":218,"toolSlugs":226,"updated":221},"\u002Fguides\u002Fcompress-image-to-200kb","图片压到 200KB 以内的三种方法：按质量压、按目标体积压、转格式","上传证件、填报名表总卡在体积限制？三种思路把图片压到 200KB 以内：按质量逐档试、直接指定目标体积自动逼近、换 WebP\u002FJPG 格式再压，附批量操作与画质权衡建议。",[227,228],"image\u002Fcompress","image\u002Fconvert",{"path":230,"title":231,"description":232,"category":233,"toolSlugs":234,"updated":236},"\u002Fguides\u002Fmake-qrcode-wifi-logo","二维码怎么做：网址码、WiFi 码、带中心 Logo 的定制码","三种最常见的二维码制作：网页链接码、连 WiFi 免输密码的 WiFi 码、带中心 Logo 的品牌码；配色与容错等级怎么配才既好看又扫得出，PNG\u002FSVG 导出与反向解析一次讲清。","developer",[235],"developer\u002Fqrcode","2026-09-13",{"path":205,"title":5,"description":191,"category":190,"toolSlugs":238,"updated":211},[209,210],{"path":240,"title":241,"description":242,"category":243,"toolSlugs":244,"updated":246},"\u002Fguides\u002Fmerge-split-pdf-scanned-docs","PDF 合并与拆分实操：把零散扫描件整理成一份干净文件","扫描件东一页西一页？手把手把多个 PDF 合并成一份、按页码范围拆分提取、删掉空白页与误扫页再导出，全程浏览器本地处理，合同与证件扫描件不出本机。","document",[245],"document\u002Fpdf-process","2026-09-11",{"path":248,"title":249,"description":250,"category":243,"toolSlugs":251,"updated":246},"\u002Fguides\u002Fprint-copybook-tianzige","田字格字帖打印指南：从生字表到 A4 成品","在家给孩子打印练字帖：田字格\u002F米字格\u002F回宫格怎么选、拼音标注与描红模式怎么配、内容输什么（生字、姓名、古诗），A4 版式直接打印或另存 PDF 的完整流程。",[252],"document\u002Fcopybook",{"path":254,"title":255,"description":256,"category":218,"toolSlugs":257,"updated":236},"\u002Fguides\u002Fremove-exif-location-before-sharing","发照片前先清 EXIF：你的位置信息可能就藏在原图里","手机原图自带拍摄时间、机型、GPS 坐标等 EXIF 元数据。讲清哪些信息会泄露、哪些平台会清除哪些不会，以及发图前用浏览器本地工具一键查看并清除 EXIF 的完整步骤。",[258],"image\u002Fexif",{"path":260,"title":261,"description":262,"category":218,"toolSlugs":263,"updated":266},"\u002Fguides\u002Fresize-crop-image-for-platforms","一张图适配所有平台：改尺寸与裁剪比例速查","头图要 16:9、封面要 1:1、简历照要 4:3？分清「改尺寸」与「裁剪」两件事：等比缩放保画质，按比例裁剪定构图，附常用平台比例速查表与批量处理流程。",[264,265],"image\u002Fresize","image\u002Fcrop","2026-09-17",{"path":268,"title":269,"description":270,"category":271,"toolSlugs":272,"updated":211},"\u002Fguides\u002Ftrim-video-lossless-vs-reencode","视频怎么裁出一段：无损截取与重编码怎么选","只想留视频里 30 秒精华？讲清无损截取（秒级出片、不改分辨率帧率）与重编码裁剪的原理差异、各自的画质与兼容性代价，以及双端滑杆精确选段到帧级的操作步骤。","audio-video",[273],"audio-video\u002Fvideo-trim",{"path":275,"title":276,"description":277,"category":233,"toolSlugs":278,"updated":280},"\u002Fguides\u002Fwhat-is-unix-timestamp","Unix 时间戳是什么：秒与毫秒怎么区分、怎么换算","一文讲清 Unix 时间戳：10 位秒级与 13 位毫秒级的自动判断规则、换算差 8 小时的三种常见原因、负数与超限值的边界，附三个真实排查案例与在线换算步骤。",[279],"developer\u002Ftimestamp","2026-09-08",1791906054409]