#hash #file #verify #local-file #log-file #data-integrity #operating-system

app hashguard

通过散列和确保文件完整性

15 个稳定版本

2.0.5 2024 年 8 月 22 日
2.0.4 2024 年 6 月 11 日
2.0.3 2024 年 5 月 13 日
2.0.1 2024 年 4 月 23 日
1.0.5 2023 年 8 月 22 日

#166 in 命令行工具

MITGPL-3.0 许可协议

92KB
2K SLoC

hashguard

Build Status dependency status GitHub license crates.io maintenance-status

通过散列和确保文件完整性

  ___ ___               .__      ________                       .___
 /   |   \_____    _____|  |__  /  _____/ __ _______ _______  __| _/
/    ~    \__  \  /  ___/  |  \/   \  ___|  |  \__  \\_  __ \/ __ | 
\    Y    // __ \_\___ \|   Y  \    \_\  \  |  // __ \|  | \/ /_/ | 
 \___|_  /(____  /____  >___|  /\______  /____/(____  /__|  \____ | 
       \/      \/     \/     \/        \/           \/           \/ 

概述

HashGuard 是一个轻量级且高效的命令行工具,旨在简化从互联网下载文件并使用散列和确保其完整性的过程。使用 HashGuard,您可以放心地下载文件并验证其真实性,为您的下载提供额外的安全层。您还可以在本地系统上验证文件。

Hashguard-Demo

功能

  • 下载

    • 下载文件,并根据所选的散列算法计算特定的散列和
    • 或者您可以直接输入已知的散列和,在下载后进行比较。这允许您检查文件在下载过程中是否被更改
    • 注意
      • 如果您使用下载命令,请将 URL 用双引号括起来。因为通过将 URL 用双引号括起来,您告诉 shell 将整个字符串作为一个单独的参数处理,即使它包含空格或其他特殊字符。这可以防止错误和意外的行为。
  • 本地

    • 如下载功能所述,散列和也可以从本地文件计算或指定一个已知的散列和进行比较
  • 散列验证:通过将文件的散列和与提供的散列值进行比较来验证下载或本地文件的真伪。

  • 支持多种散列算法:HashGuard 支持不同的散列算法,包括 SHA-1、SHA2-256 等。默认的散列算法是 SHA2-256。

  • 直观的命令行界面:简单且用户友好的 CLI 让您轻松计算和比较散列和。

  • 日志级别

    • 您可以使用应用程序调试模式
      • 这提供了额外的功能,例如在日志文件中记录所有相关操作。
      • 此外,调试模式对于获取有关错误(例如显示完整回溯)的详细信息非常有用

支持的操作系统

  • Linux [所有常用发行版]
  • MacOs [在 MacOs Monterey 上测试]
  • Windows 10/11

先决条件

安装 Rust

要安装 Rust 到您的系统,只需访问 官方 Rust 网站,下载并安装 Rustup 工具链管理器。

注意:请参考您操作系统的安装说明。对于某些操作系统,在使用 Rust 之前需要安装构建工具。

安装

HashGuard 也可在 crates.io Rust 社区的软件包注册库中找到。因此,您可以在本地系统上轻松将其作为二进制文件安装。使用以下命令

cargo install hashguard

使用原生编译的二进制文件

如果您没有安装 Rust 或不愿自行构建项目,可以使用 发行版 部分提供的预编译二进制文件。下载适合您操作系统和架构的二进制文件,然后您就可以使用了!

构建项目

要从头开始构建此项目,请按照以下步骤操作

  • 克隆此存储库
  • 打开一个终端
  • 导航到项目的根目录
  • 运行以下命令
cargo build --release
  • 编译后的二进制文件将在 target/release/ 下可用

如何使用

通用语法

  • hashguard[选项] <命令>

特定命令语法

  • hashguard[选项]download<URL> [HASH_SUM] [选项]
  • hashguard[选项]local<FILE_PATH> [HASH_SUM] [选项]

使用示例

  • 使用默认的哈希算法 SHA2-256 下载文件并验证其哈希值

    hashguard download "https://example.com/file.zip" a1b2c3d4e5f6
    
  • 使用特定的哈希算法下载文件并计算哈希值

    hashguard download "https://example.com/file.zip" -a sha2-512
    
  • 使用 SHA-1 验证本地文件的哈希值

    hashguard local /path/to/local_file.txt a1b2c3d4e5f6 -a sha1
    
  • 使用默认的哈希算法从本地文件计算哈希值

    hashguard local /path/to/local_file.txt
    
  • 为下载的文件使用特定的输出目录

    hashguard download "https://example.com/image.jpg" a1b2c3d4e5f6 -o /path/to/output_directory
    
  • 使用 --rename 选项重命名要下载的文件

    hashguard download "https://example.com/image.jpg" a1b2c3d4e5f6 -r "my_fancy_new_file.jpg"
    
  • 启用调试日志级别

    hashguard -l debug download "https://example.com/file.zip" a1b2c3d4e5f6
    
    • 发生错误时,将显示完整的回溯
    • 此外,所有日志输出都保存在应用程序数据目录中的日志文件中。
    • 您可以使用 [--version] 命令查找应用程序数据目录
    • 请注意,应用程序数据目录以隐藏目录的形式创建。要查看它,您必须激活操作系统显示隐藏文件和文件夹的属性,如果您尚未这样做的话
  • 获取版本信息

    hashguard --version
    
  • 获取一般帮助

    hashguard --help
    
  • 获取特定命令的帮助

    hashguard download --help
    
    hashguard local --help
    

支持的哈希算法

  • MD5
  • SHA-1
  • SHA2-256
  • SHA2-512

注意

Windows 下没有彩色控制台输出?
HashGuard 当然也支持彩色控制台输出(错误 = 红色,提示 = 黄色,成功 = 绿色)。
如果 CMD 或 PowerShell 中没有显示彩色文本,而是显示输出前后 ANSI 转义序列,
启用 ANSI 转义序列支持可能有所帮助。以管理员身份打开 CMD 或 PowerShell 并执行以下命令

reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1

此命令添加了一个注册表项,它启用了 conpty 功能,该功能在 Windows 控制台中提供 ANSI 转义序列支持。
请重新打开终端,彩色输出应该可以正常工作。

贡献和错误报告

欢迎贡献和错误报告!如果您发现任何问题或对改进有建议,请在我的 GitHub 存储库中打开一个问题或提交一个拉取请求。

许可证

HashGuard 在 MIT 许可证下发布。

免责声明

虽然 HashGuard 致力于提供可靠的文件验证,但在从互联网下载文件或使用本地文件进行验证时,必须谨慎行事。在继续之前,请始终确保您信任来源和提供的哈希值。

依赖关系

~14–24MB
~360K SLoC