☰
AutoHotkey 算 MD5 和 SHA256 的完整指南:3 步验出安装包是否被替换
2026/11/4 2:20:01 网站建设 项目流程

AutoHotkey 算 MD5 和 SHA256 的完整指南:3 步验出安装包是否被替换

【免费下载链接】AutoHotkeyAutoHotkey - macro-creation and automation-oriented scripting utility for Windows.项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey

上周一个几百 MB 的 exe 从网上下下来,你确定它和官网公布的那份一模一样吗?文件被换过、传输出错,肉眼根本看不出来,但对一下摘要值,真假立现。AutoHotkey 的脚本里,两三行代码就能把本地文件的 MD5、SHA1、SHA256 算出来,和官方公布值一比就踏实了。

最短路径:从下载到看到哈希值只用 3 步

  1. 克隆仓库:git clone https://gitcode.com/gh_mirrors/au/AutoHotkey,用 Visual Studio 打开根目录的AutoHotkeyx.sln,选 Debug 或 Release 编译,产物是一个独立 exe。
  2. 新建calc.ahk,贴入下面 6 行代码,双击运行。
  3. 弹出窗口显示的就是 SHA256 值;把它和发布者公布的值逐位比对即可。
path := "C:\downloads\setup.exe" RunWait, certutil -hashfile "%path%" SHA256, , Hide Loop { LineRead, line IfEqual, line, , break if InStr(line, "散列") MsgBox, % line break }

一句话结论:不用装 Python、不用手动开命令行,双击脚本就出结果。

MD5、SHA1、SHA256、SHA512 怎么挑

算法输出位数典型用途
MD5128 位快速自查、兼容老系统
SHA1160 位旧版分发签名,正在被替代
SHA256256 位软件分发、安装介质校验默认选项
SHA512512 位归档与更高安全要求的场景

位数越高抗碰撞能力越强,单次计算也略慢;位数不是越高越好,按文件价值取用。日常对外校验一律 SHA256 起步。

想动源码先看这三个落点

这个仓库没有单独的FileHash内置函数,但流程用到的机制都在源码里找得到。

  • source/lib/DllCall.cpp:DllCall的完整实现,脚本借此调用原生 Win32 API。想把摘要换成 CNG 的 BCrypt 接口直接算,从这个调用机制入手。
  • source/lib/file.cpp:文件流的打开、读写与错误处理。自己实现分块读盘再喂给哈希接口时,照着它处理文件句柄就行。
  • source/lib/functions.h:内置函数的声明清单,RunWait、FileAppend、Thread的参数顺序和可选标记都在这,写脚本前先翻一眼。

把校验接进现有流程的三个场景

备份目录每天自查:用LoopFiles遍历目录,把每个文件的值逐行追加进报告 txt,挂到夜间计划任务,异常文件一眼可见。

塞进分发流水线:算出的值直接用FileAppend写进清单,或者交给RunWait触发你已有的校验、审计脚本,不必另开窗口。

大文件并行:Thread派生多条线程,每条认领一批文件。各文件的摘要互不依赖,文件越多省的时间越明显。

几个常被问到的问题

几 GB 的盘镜像会爆内存吗

不会。上面的写法由 certutil 分块读盘,AutoHotkey 只保留几行输出文本,内存占用基本恒定,大镜像放心跑。

MD5 和 SHA256 到底选哪个

MD5 快,但存在已知碰撞风险,只适合快速自查;对外分发、重要存档一律 SHA256。

能多线程同时算多个文件吗

能。Thread派生线程并发认领文件即可,哈希计算之间没有共享状态,不存在竞争问题。

今晚就做三件事:对最近下载的那个安装包跑一次 SHA256,把值存进文本;记下这次的文件日期;下次更新时再算一遍,两个值一比,文件有没有被动过,你自己说了算。

【免费下载链接】AutoHotkeyAutoHotkey - macro-creation and automation-oriented scripting utility for Windows.项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询