#inventory #repository #hash #file #file-path #integrity #verification

app inventorize

命令行文件完整性验证工具

2 个版本

0.1.1 2021年1月29日
0.1.0 2021年1月29日

#1054 in 文件系统

MIT 许可证

41KB
772

inventorize

crates.io license

inventorize 是一个用于数据完整性验证的命令行工具。

简而言之,inventorize 会构建一个目录(存储库)中文件的 清单。该清单包含文件的路径和哈希值。以后,可以使用 inventorize 将清单记录与存储库的实际内容进行比较,通过比较它们的哈希值来验证文件的完整性。

快速入门指南

使用 inventorize 主要包括三个操作

  • 构建清单文件;
  • 定期使用清单文件验证存储库的内容;
  • 当存储库中添加新文件或删除旧文件时更新清单(这不会重新计算现有清单记录的哈希值)。

清单文件不得存储在存储库目录内部。

关于所有可用的命令行选项和命令的详细描述,请参阅以下参考资料。

构建清单

使用 build 子命令构建清单

inventorize
    --repository /path/to/the/repo
    --inventory /path/to/the/inventory.json
    build

验证存储库内容

使用 verify 子命令使用现有的清单文件验证存储库的内容

inventorize
    --repository /path/to/the/repo
    --inventory /path/to/the/inventory.json
    verify

更新清单

使用 update 子命令在存储库中添加文件时更新清单

inventorize
    --repository /path/to/the/repo
    --inventory /path/to/the/inventory.json
    update

参考资料

所有子命令接受的命令行选项

  • --repository:存储库的路径(默认为当前工作目录)。
  • --inventory:清单文件的路径。
  • --verbose:详细模式。

build 子命令

build 子命令用于构建清单。

默认情况下,此子命令将包括隐藏文件在清单中。如果清单文件存在,它将报告错误。

默认的哈希算法是 md5。特别偏执的用户可以选择多个哈希算法

--hash-algorithm=md5 --hash-algorithm=sha1

支持的选项

  • --overwrite:如果存在,则覆盖清单文件。
  • --skip-hidden:不要在清单中包括隐藏文件。
  • --hash-algorithm=<ALG>:要使用的哈希算法。

支持的哈希算法

  • md5
  • sha1

verify 子命令

verify 子命令用于使用现有清单验证存储库内容。如果发现任何缺失、添加或更改的文件,将返回错误。

默认情况下,检查清单中包含的所有哈希值。或者,可以启用 快速模式,只检查文件的存在及其大小。不言而喻,这种模式不应被视为可靠的完整性检查。

支持的选项

  • --quick 快速模式:只检查文件的存在及其大小。

update 子命令

update 子命令在清单构建后更新包含在存储库中的文件。它 从不 重新计算现有清单记录的哈希值。

从存储库中删除但仍在清单中存在的文件默认情况下不会被从清单中删除。

支持的选项

  • --remove-missing:从清单中删除在存储库中找不到的文件。

清单文件格式

清单存储为包含 记录(文件路径及其哈希值)的 JSON 文件,以及元数据(构建清单的应用程序版本和 build 子命令选项)。

依赖项

~5–14MB
~149K SLoC