#摘要 #哈希 #下载 #命令行工具

程序+库 digestify

验证文件与提供的摘要/哈希/校验和是否匹配

4个版本 (2个破坏性更新)

0.4.0 2022年7月2日
0.3.0 2021年6月28日
0.2.1 2021年6月5日
0.2.0 2021年6月4日

#1584 in 密码学

Apache-2.0 OR MIT-0

26KB
430 代码行

Digestify

digest·​i·​fy -| _ˈdī-ˌjest-ə-ˌfī

名词 - 一个命令行工具,用于使验证下载文件的摘要/校验和/哈希变得简单。只需指定文件和下载主机上列出的哈希值。它将从长度推断可能的摘要算法。它的进程退出码将指示摘要是否匹配。

动词 - 由“摘要”和“验证”组合而成。计算文件的摘要并验证摘要是否与提供的值匹配。

支持的摘要


算法

长度
十六进制
长度
SHA-512 512 128
SHA-256 256 64
SHA-1 160 40
MD5 128 32
CRC-32 32 8

用法

$ digestify -h
digestify 0.4.0
Verify a file against a provided digest/hash/checksum.

USAGE:
    digestify <file> <digest>

ARGS:
    <file>      File to verify
    <digest>    Digest to compare to, specified as a case-insensitive hexadecimal string

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

如果找到与摘要算法之一匹配,则命令将成功。否则,将失败。

示例用法

# digestify Cargo.lock 19189c1219285b61ce1e95f9e4fdd5354a926075db9cf5dc62cf1801702c67d2

Verifying 'Cargo.lock' against provided digest of size 64 hex chars / 256 bits.  Candidate digest(s): SHA-256.

 SHA-256: PASS
        Expected=19189c1219285b61ce1e95f9e4fdd5354a926075db9cf5dc62cf1801702c67d2
          Actual=19189c1219285b61ce1e95f9e4fdd5354a926075db9cf5dc62cf1801702c67d2

PASS: Provided digest matches the content.
# echo $?
0
# digestify Cargo.toml f26c2e4e001349b737a3a5cc5fc4afc87b423773

Verifying 'Cargo.toml' against provided digest of size 40 hex chars / 160 bits.  Candidate digest(s): SHA-1.

 SHA-1: FAIL
        Expected=f26c2e4e001349b737a3a5cc5fc4afc87b423773
          Actual=95ee03e733a0111ac9d6b2073f4acec0f120fae5

FAIL: Provided digest doesn't match any of the candidate digest results.
# echo $?
2

依赖关系

~3.5MB
~72K SLoC