lhy8888/Lhash
GitHub: lhy8888/Lhash
一款面向 Windows 的可信本地文件完整性验证工具,强调可审查与可重复的离线验证流程。
Stars: 29 | Forks: 0
# LHash




## Windows 上的可信本地验证
LHash 是一个以安全为先的 Windows 本地文件验证工具,适用于本地文件、发布包和可重复的完整性检查。
它面向希望回答实际信任问题的用户,例如:
- 这个下载的文件是否被修改过?
- 这个发布包是否仍与预期的工件匹配?
- 是否可以在不上传任何内容的情况下本地验证文件?
- 能否为后续审查或证据保存生成可重复的结果?
维护版本线将 LHash 从传统的哈希工具转变为 **可信验证工具**,具备更安全的本地默认设置、更清晰的执行边界和更可审查的发布姿态。
## 当前发布线
- 当前版本:`[v1.12.1](https://github.com/lhy8888/Lhash/releases/tag/v1.12.1)`
- 下载:`[GitHub Releases](https://github.com/lhy8888/Lhash/releases)`
- 主分支:`future-winui-was2`
- CI:`[Windows Build workflow](https://github.com/lhy8888/Lhash/actions/workflows/windows-build.yml)`
- 安全策略:[SECURITY.md](SECURITY.md)
- 代码签名:[CODE_SIGNING.md](CODE_SIGNING.md)
- 代码签名策略:[CODE_SIGNING_POLICY.md](CODE_SIGNING_POLICY.md)
- 许可证说明:`GPL-2.0-only with an OpenSSL linking exception`;参见 [LICENSE-OPENSSL-EXCEPTION.md](LICENSE-OPENSSL-EXCEPTION.md)
## 为什么 LHash 被定位为验证工具
LHash 不仅仅关注快速计算摘要。
它围绕一个核心理念构建:**验证结果本身必须值得信赖**。
这意味着维护版本专注于:
- 更安全的本地文件处理
- 并发下的确定性结果
- 对大文件和溢出边界的明确处理
- 更清晰的 UI 代码与验证运行时代码分离
- 可供后续审查的发布和供应链元数据
## 安全与验证文档
如果您希望以更可审查的形式了解项目的信任模型,请从这里开始:
- [文档索引](docs/README.md)
- [威胁模型](docs/THREAT_MODEL.md)
- [安全模型](docs/SECURITY_MODEL.md)
- [发布验证指南](docs/RELEASE_VERIFICATION.md)
- [供应链安全](docs/SUPPLY_CHAIN_SECURITY.md)
## 安全模型要点
### 默认本地优先
LHash 适用于本地验证工作流。
- 无需账户
- 无需遥测
- 默认不上传文件内容
- 默认不上传哈希到第三方服务
### 更安全的路径处理
默认情况下,LHash 拒绝高风险路径类型,例如:
- 符号链接
- 联接点
- 重解析点
这可减少意外的信任错误、权限意外和向敏感路径的意外遍历。
### 负载下的验证稳定性
LHash 使用:
- 每个任务独立的哈希上下文
- 无共享的可变静态哈希状态
- 检查整数转换和 64 位文件大小处理
- RAII 风格的资源所有权
目标不仅是速度,而是在真实工作负载下实现可重复、可审查的结果。
## 工具的适用场景
LHash 适用于:
- 在使用前验证下载的软件包
- 检查 GitHub Releases 的发布工件
- 确认存档文件或证据副本未被修改
- 本地目录的批量验证
- 在交付或交接期间比较预期与实际摘要
## 工具不试图成为什么
LHash 并不是作为一个完整的可信框架来呈现。
哈希只能证明内容与摘要匹配。它本身**不能**证明发布者身份。
因此,该仓库也在向以下方向演进:
- 代码签名清晰度
- 发布校验和公布
- GitHub 原生工件证明
- 发布 SBOM 公布
这些共同使项目在作为可信验证工具方面更有用,而不仅仅是一个快速的哈希计算器。
## 支持的算法
### 加密哈希
- MD5
- SHA-1
- SHA-256
- SHA-512
### 现代高性能哈希
- BLAKE3-256
- BLAKE3-512
### OpenSSL 3 扩展算法
- SHA-256
- SHA-384
- SHA-512
- SHA3-256
- SHA3-384
- SHA3-512
- BLAKE2b-512
- BLAKE2s-256
- SHAKE128-256
- SHAKE256-512
### 非加密校验和
- XXHash3-64
- XXHash3-128
- CRC32C
## 架构方向
维护版本已被重构为更清晰的层次:
```
NativeCore
- Domain
- Runtime
- Algorithms
- Common
Adapters
- UiBridge
WinMFC
LegacyCompat
third_party
```
这使得信任边界、执行行为和未来的接口扩展更容易进行推理。
## 路线图方向
近期内强化验证定位的路线图事项包括:
- 更强的发布验证文档
- 发布上更广泛的供应链元数据
- 可重复验证流程的 CLI 模式
- 更清晰的威胁模型文档
- 在托管和本地代码中的更深入静态分析覆盖
## 一句话定位
**LHash 是一个用于本地完整性检查、可重复审查和更安全发布验证的 Windows 可信验证工具。**
标签:GPL-2.0, Windows安全工具, Windows平台, 代码签名, 信任边界, 发布审查, 可视化界面, 哈希校验, 大文件处理, 安全测试工具, 并发安全, 数字取证, 文件变更检测, 文件完整性校验, 本地验证, 确定性结果, 离线验证, 自动化脚本, 证据保留, 重复性验证