Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JimsZack/HashSum

Repository files navigation

HashSum 文件哈希校验工具

HashSum 是一个多平台文件哈希计算工具,支持计算文件的 MD5、SHA1、SHA256、SHA512 和 SM3(国密)哈希值。

功能特点

  • 支持多种哈希算法:MD5、SHA1、SHA256、SHA512、SM3
  • 支持单文件和目录批量处理
  • 实时显示处理进度
  • 自动跳过特定文件(如结果文件)
  • 跨平台支持(Windows、Linux、macOS)
  • CSV 格式输出,方便后续处理

使用方法

命令行参数

HashSum [-h 目录路径]
  • -h: 指定要扫描的目录路径(可选,默认为当前目录)

示例

  1. 扫描当前目录:
./HashSum
  1. 扫描指定目录:
./HashSum -h /path/to/directory

构建说明

前置条件

  • Go 1.16 或更高版本
  • 网络连接(用于下载依赖)

构建步骤

  1. 初始化项目:

Windows CMD:

init.bat

Windows PowerShell:

.\init.ps1

Linux/macOS:

chmod +x init.sh
./init.sh
  1. 构建程序:

Windows CMD:

build.bat

Windows PowerShell:

.\build.ps1

Linux/macOS:

chmod +x build.sh
./build.sh

程序流程

flowchart TD
 A[开始] --> B[解析命令行参数]
 B --> C[创建结果文件]
 C --> D[统计待处理文件数]
 D --> E[遍历文件]
 E --> F{是否为目录或需跳过?}
 F -- 是 --> E
 F -- 否 --> G[计算文件哈希值]
 G --> H[写入结果文件]
 H --> I{是否还有文件?}
 I -- 是 --> E
 I -- 否 --> J[显示完成信息]
 J --> K[倒计时退出]
 K --> L[结束]
Loading

输出格式

结果文件(CSV格式)包含以下列:

  • 文件路径
  • MD5
  • SHA1
  • SHA256
  • SHA512
  • SM3

示例输出:

文件路径,MD5,SHA1,SHA256,SHA512,SM3
example.txt,d41d8cd98f...,da39a3ee5e...,e3b0c44298...,cf83e1357e...,1ab21d8355...

支持的平台

  • Windows (x86, x64, ARM64)
  • Linux (x86, x64, ARM64)
  • macOS (x64, ARM64)

注意事项

  1. 程序会自动跳过以下文件:

    • 以 "result_" 开头的文件
    • 以 "HashSum" 开头的文件
  2. 结果文件命名规则:

    • 当前目录:HashSum_result_current.csv
    • 指定目录:HashSum_result_目录名.csv
  3. 进度显示:

    • 实时显示处理进度条
    • 显示已处理文件数/总文件数
    • 显示百分比进度
  4. 程序结束:

    • 显示结果文件的完整路径
    • 10秒倒计时后自动退出

构建产物

构建后的文件位于 build 目录下,按照操作系统和架构分类:

build/
├── windows-amd64-v1.0.0/
│ └── HashSum.exe
├── linux-amd64-v1.0.0/
│ └── HashSum
└── darwin-amd64-v1.0.0/
 └── HashSum

hash_generator.go

开发说明

  1. 主要源文件:

    • hash_generator.go: 主程序源码
    • build.bat/build.ps1/build.sh: 构建脚本
    • init.bat/init.ps1/init.sh: 初始化脚本
  2. 依赖项:

    • github.com/tjfoc/gmsm/sm3: 国密SM3算法实现

许可证

MIT License

AltStyle によって変換されたページ (->オリジナル) /