跳到主内容

文件校验值拖拽计算 - 免费拖进窗口即算 MD5/SHA1/SHA256(其它工具)

免费下载文件校验值拖拽计算 v1.0.0
平台:Windows 10/11 (64位)大小:12 KB版本:v1.0.0更新:
提取码:2ya9(如提示需要,请输入)
下载地址 ▾
解压后双击即可运行,无需安装任何运行环境,不联网、不上传数据。
要核对下载的文件是否完整,用命令行算哈希对普通用户门槛太高

文件校验值拖拽计算 运行界面

软件名称文件校验值拖拽计算
版本v1.0.0
授权免费(可自由使用与转发)
运行方式本地运行,不上传数据
所属分类其它工具

这个工具解决什么问题

从网盘、官网或同事那里拿到一个安装包、一份资料,想确认它有没有在传输中损坏、有没有被人改过,最可靠的办法是对一下校验值。可问题是:算哈希这件事,在 Windows 上默认没有现成的图形界面入口。要么去搜一个在线工具把文件传上去(大文件传不动,还担心泄露),要么硬着头皮开命令行敲 certutil,一边敲一边担心路径里有空格、参数写错了。一次两次还行,如果手上是几十个文件要逐个核对,靠命令行基本没法做。

  • 原来的做法:开命令行,手敲 certutil -hashfile 加一长串路径,一个文件敲一次;或者把文件传到在线哈希网站,等上传、等结果,大文件基本不可用。
  • 用这个工具:把文件(或整个文件夹)直接拖进窗口,勾选要算的算法,点「开始计算」,几秒钟后列表里每行都填好 MD5 / SHA1 / SHA256,一键导出 CSV。
  • 省下来的:几十个文件的校验值,原来要十几分钟且容易敲错路径;现在拖进去点一下,10 秒出结果,导出后可直接发给人核对。

技术实现

用 C# + .NET Framework 4.8 写成 WinForms 单窗口程序,编译成单个 exe。选这个技术栈的原因是:.NET Framework 4.8 是 Windows 10/11 系统自带的运行时,用户拿到 exe 双击就能开,不需要额外装 Python、不需要装 .NET,启动速度也比解释型方案快。哈希计算全部走 System.Security.Cryptography 里的标准实现(MD5 / SHA1 / SHA256),不做任何自定义算法,结果与 certutil、sha256sum 完全一致。

  • 分块增量哈希,不怕大文件:不用 File.ReadAllBytes 一次性读入(几个 GB 的文件会直接内存溢出),而是用 FileStream 每次读 1MB,通过 HashAlgorithm.TransformBlock 增量喂给算法,最后 TransformFinalBlock 收尾。内存占用与文件大小无关,恒定在 1MB 量级。
  • BackgroundWorker 后台计算,界面不假死:哈希计算放在 BackgroundWorker 的 DoWork 里执行,进度通过 ReportProgress 回到主线程刷新进度条和列表。全程不跨线程直接操作控件,避免 WinForms 常见的跨线程访问异常。
  • 拖拽投放 + 系统文件对话框:窗口和列表都挂了 AllowDrop,DragEnter 判断 DataFormats.FileDrop 后置为 Copy 效果;选文件走 OpenFileDialog、选文件夹走 FolderBrowserDialog。用户全程不需要手打路径。
  • 按完整路径去重:重复拖入同一个文件不会产生重复行,比较时用 OrdinalIgnoreCase(Windows 路径大小写不敏感)。
  • 导出 CSV 带 UTF-8 BOM:StreamWriter 用 new UTF8Encoding(true) 写出 BOM,Excel 双击打开中文列名和文件名不会变成乱码;字段含逗号或引号时按 CSV 规范加引号转义。
  • 界面不暴露本机路径:列表只显示文件名,完整路径放在悬浮提示(ToolTipText)里,截图或录屏分享时不会带出本机目录结构。导出 CSV 里才包含完整路径,方便批量核对。

技术栈:C# 5.0、.NET Framework 4.8、WinForms 窗体

已知局限:受限于 .NET Framework 自带算法,未包含 SHA3 / BLAKE2 等新算法;超大文件(数十 GB)计算期间进度条按「已完成文件数」推进,单文件内部不细分进度。

操作教程

  1. 打开程序
    解压后双击 exe,出现主窗口,列表为空,底部提示「把文件或文件夹拖进下面的列表」。
    预期结果:窗口正常打开,能看到添加文件、添加文件夹、开始计算等按钮。
  2. 加入要计算的文件
    把文件或文件夹直接从资源管理器拖进窗口中间的结果列表;也可以点「添加文件」用系统对话框多选,或点「添加文件夹」整目录加入。勾选「包含子文件夹」可递归收集。
    预期结果:列表里出现文件行,显示序号、文件名和大小;底部状态栏显示当前待计算数量。
  3. 选择算法
    在底部勾选需要计算的算法,默认 MD5、SHA1、SHA256 三个都勾上。只想要其中一个就把其它的取消勾选,计算更快。
    预期结果:勾选框状态符合预期。
  4. 开始计算
    点「开始计算」按钮。计算在后台进行,进度条和状态文字会实时刷新,界面上其它按钮暂时置灰防止误操作。
    预期结果:进度条走到 100%,列表里 MD5/SHA1/SHA256 三列依次填满,状态栏提示「计算完成」。
  5. 核对结果
    把鼠标停在某一行上,可以看到该文件的完整路径。把计算出来的值与官方公布的校验值逐位对比即可。
    预期结果:鼠标悬浮显示完整路径;哈希值全为小写十六进制字符串。
  6. 导出留档
    点「导出 CSV」,选择保存位置。导出文件用 Excel 或记事本都能直接打开。
    预期结果:生成 CSV 文件,含序号、文件名、完整路径、大小、MD5、SHA1、SHA256 七列。
  7. 移除或清空
    选中若干行点「移除选中」可去掉;点「清空列表」重置全部。
    预期结果:列表按操作更新,底部数量同步变化。

整个过程不需要打开命令行,也不需要联网,文件始终在本机读取。

常见问题

Q:算出来的 MD5 和网站公布的不一样,是不是工具算错了?A:先确认比对的对象是同一个文件。常见原因是:文件在下载中被截断(大小对不上)、官网更新过版本、或者比对的是另一种算法(有的站点把 SHA256 写成 MD5 栏目)。把算出的值和文件大小一起核对,通常就能定位问题。
Q:能算多大的文件?A:没有硬上限。因为是分块读取,内存占用与文件大小无关。真正影响耗时的是磁盘读取速度,机械硬盘读一个几 GB 的文件会比较慢,进度会停在那一行,属正常现象。
Q:为什么列表里只显示文件名,不显示路径?A:为了避免截图或录屏时把本机目录结构带出去。需要完整路径时,把鼠标停在行上会显示悬浮提示,或者导出 CSV 里也包含完整路径。
Q:SHA256 后面有个省略号,是被截断了吗?A:是的。SHA256 有 64 位十六进制字符,一行放不下,列表里只显示前 40 位用于快速比对。完整值把鼠标停在那一行上就能看到,导出 CSV 里也是完整的 64 位。
Q:拖进去没反应怎么办?A:确认拖的是文件或文件夹(不是网页里的链接)。如果目标文件正被其它程序独占打开(例如正在被解压软件写入),读取会失败并在该行显示失败原因,换一个时间再试即可。
Q:结果能直接发给别人核对吗?A:可以。点「导出 CSV」得到的结果文件用 Excel 打开即可,列名与文件名都是中文,不会乱码。
Q:这个程序会不会把我的文件上传出去?A:不会。程序不包含任何网络请求代码,哈希完全在本机计算。断网状态下功能完全正常。
Q:能同时算多个文件吗?A:可以。一次拖入或一次多选多个文件,程序会逐个计算并逐行填入结果,进度条按文件数推进。
Q:支持哪些 Windows 版本?A:Windows 10 和 Windows 11(64 位)均可直接运行。Windows 7 理论上也能跑,但已不在支持范围内。

技术实现与后续维护

本工具由我们自行开发并持续维护,每次迭代都经过本地自测。核心逻辑集中在 MainForm.cs 一个文件里,哈希计算部分是一个静态方法 ComputeHash,与界面完全解耦,改动时不影响其它部分。

技术构成:

  • src/MainForm.cs —— 唯一源码文件:窗口搭建、文件收集、后台哈希计算、CSV 导出
  • DOCS/开发文档.md —— 工程结构、技术实现要点、编译方式与扩展点

运行环境:

使用 .NET Framework 4.8 自带的 csc.exe 编译,无需 Visual Studio:

csc /target:winexe /out:文件校验值拖拽计算.exe /platform:anycpu /optimize+ /reference:System.Windows.Forms.dll /reference:System.Drawing.dll src\MainForm.cs

也可以在 Visual Studio 2019/2022 中新建「.NET Framework 4.8」Windows 窗体项目,把 src\MainForm.cs 加入后直接生成。

可扩展方向:

  • 接入 SHA512 / CRC32 等更多哈希算法(只需在 ComputeHash 的 switch 里加分支)
  • 增加「与预期值比对」功能,读入官方校验文件后自动标红不一致项
  • 把结果导出成 xlsx 或直接复制到剪贴板
  • 对目录做定时扫描,文件指纹变化时弹窗提醒

本工具免费提供使用,但不对外分发源码。如果你需要在本工具基础上做功能调整、对接内部系统或长期维护,可以联系我们做二次开发,源码与工程文档可在定制合作中一并交付。

需要其它功能?可以定制

这个工具只做一件事:要核对下载的文件是否完整,用命令行算哈希对普通用户门槛太高。如果你的场景还需要别的处理,可以联系我们做二次开发,按你的实际数据格式和流程定制。

常见的定制需求:

  • 批量校验后自动和官方公布的校验值文件(如 SHA256SUMS)比对,标出不一致的文件
  • 增加 SHA512 / CRC32 / BLAKE2 等更多算法
  • 把校验结果写成带格式的 Excel 报表,按目录分组
  • 定时扫描指定目录,发现文件被改动就告警
  • 联系方式:邮箱/微信见站内「联系我们」页面,或在本文下方留言
  • 定制说明:请附上你的数据样例(脱敏即可)和期望结果,方便快速评估工作量
  • 交付形式:定制项目可交付可执行程序,按需一并交付源码与工程文档,支持长期维护

使用说明与免责声明

  • 本工具在本地运行,不联网、不上传任何数据到服务器。
  • 涉及文件改写的功能,请在使用前备份原始文件。
  • 软件完全免费,可自由使用与转发,请勿用于倒卖。
  • 因误操作造成的数据问题请自行承担。
免费下载文件校验值拖拽计算 v1.0.0
平台:Windows 10/11 (64位)大小:12 KB版本:v1.0.0更新:
提取码:2ya9(如提示需要,请输入)
下载地址 ▾
解压后双击即可运行,无需安装任何运行环境,不联网、不上传数据。
分享到:

本文链接:https://www.biyeyuanma.cn/post/274.html

服务热线

加我微信

加我微信