Notepad++本身不支持计算文件哈希值,其MD5/SHA256功能依赖第三方插件NppCrypt,仅对已打开文本内容计算,受编码、换行符等影响,结果不可靠;官方推荐使用certutil、sha256sum等直接读取原始字节的工具验证文件完整性。

Notepad++ 的 MD5/SHA256 功能本质是插件,不是内建能力
Notepad++ 本身不带哈希计算能力,它依赖一个叫 NppCrypt 的第三方插件(旧版叫 MD5 插件)。该插件在 v7.9+ 版本后默认不再随安装包分发,需手动安装。如果你点开「工具 → MD5」没反应,大概率是插件根本没装上。
插件行为也受限于文件加载方式:它只对「已打开的文件内容」做哈希(即读取当前编辑器里显示的文本),而非直接读取磁盘原始字节 —— 这意味着:
- 二进制文件(如
.exe、.zip)用 Notepad++ 打开后会显示乱码,插件仍会计算这些乱码字符的哈希,结果与真实文件哈希**完全不同** - 文件编码影响结果:UTF-8 带 BOM 和无 BOM、UTF-16、ANSI 等,哪怕内容看起来一样,哈希值也会变
- 行尾符差异(CRLF vs LF)也会导致哈希不一致
Windows 命令行 certutil 是更可靠的选择
对于本地文件校验,certutil -hashfile 是 Windows 自带、无需安装、直接读取原始字节的方案,比 Notepad++ 插件更可信。
常见错误和写法:
- 路径含空格却没加英文双引号:
certutil -hashfile C:\My Files\app.zip SHA256→ 报错;正确写法:certutil -hashfile "C:\My Files\app.zip" SHA256 - 想过滤掉头尾两行输出,但误用
-f参数(它不控制输出格式);正确做法是管道过滤:certutil -hashfile app.zip MD5 | findstr /v "hash" - 算法名大小写敏感:用
SHA256没问题,但sha256在某些旧系统可能失败;推荐统一用大写
输出中真正有效的哈希值总在第二行,第一行是提示文字(如 MD5 hash of file app.zip:),第三行为空行。
Linux/macOS 应优先用 sha256sum 或 shasum
类 Unix 系统下,sha256sum(Linux)和 shasum -a 256(macOS)是标准工具,行为稳定、参数明确,且默认按原始字节计算,不存在 Notepad++ 那种编码干扰问题。
关键区别注意:
-
sha256sum app.zip输出格式为<hash> <space> <filename>,适合写脚本批量处理 -
shasum -a 256 app.zip默认只输出哈希值(无文件名),更接近certutil的第二行;但参数必须是-a 256,不能写SHA256,否则静默失败(返回码 1,无提示) - 两者都支持校验模式:
sha256sum -c checksums.sha256可一次性验证多个文件
校验前必须确认哈希来源是否可信
再准的哈希值,如果对比的“官方值”本身被污染或过期,整个校验就失去意义。Notepad++ 官网每个版本发布页都会提供 SHA256 值(不是 MD5),例如 v8.4.9 的哈希是 751757153297c6387c2c727f78738a7a8a9b1c2d3e4f5a6b7c8d9e0f1a2b3c4d,这个值必须从 https://notepad-plus-plus.org/ 域名下页面获取,不能从镜像站、论坛帖或搜索引擎快照抄。
最容易被忽略但后果最重的一点:别用在线哈希网站处理任何含密钥、配置、用户数据的文件 —— 上传即泄露,且不可逆。

















