#keepass #diff #command-line-tool #cli

app keepass-diff

此 CLI 工具读取两个 Keepass (.kdbx) 文件并打印它们之间的差异

12 个版本 (稳定版)

使用旧的 Rust 2015

1.2.0 2023 年 11 月 6 日
1.1.4 2022 年 4 月 4 日
1.1.3 2022 年 2 月 4 日
1.1.1 2021 年 8 月 8 日
0.1.0 2019 年 1 月 16 日

命令行工具 中排名 230

每月下载量 34

MIT 许可证

9.5MB
946

keepass-diff

此 CLI 工具比较两个 Keepass (.kdbx) 文件并打印它们之间的差异。

安装

主要安装方法是使用 Rust。

RUSTFLAGS="-C target-cpu=native" cargo install keepass-diff

RUSTFLAGS 变量将显著提高性能。请参阅 keepass-rs 的安装说明

使用容器进行替代安装和使用

如果您未安装 Rust 工具链,则可以使用容器进行替代安装。要能够通过简单命令在当前工作目录中运行 keepass-diff,需要进行两个安装步骤

  1. 构建容器
  2. 为简单使用设置别名

以下命令假设使用 docker 来构建和运行容器,但也可以将其替换为 podman 和可能的其他引擎。请检查选项是否可用。

要构建容器,请运行

docker build -f Containerfile.install -t "keepass-diff:custom-local" .

要获取适合您机器的正确别名以进行使用,请运行

alias keepass-diff='docker run -it --rm -v "$(pwd)":/app:ro "keepass-diff:custom-local"'

alias 命令可以复制并粘贴到您的 .bashrc.zshrc 文件中。这将确保在每次启动新的终端会话时都保持 keepass-diff 可用。您可以选择启动一个新的 shell 或在当前终端中运行一次命令以立即使其可用。

设置别名后,应可以使用 keepass-diff。尝试运行

keepass-diff --help

注意: 请记住,别名是以允许将当前工作目录挂载到容器中的方式设置的。这意味着您能够访问此目录中的文件,但您将无法通过绝对路径或使用 ../ 从您的宿主机器访问文件。

使用方法

keepass-diff <file-a> <file-b>

CLI 将分别要求输入两个文件的密码。

Example Screencast

提供密码

您还可以在命令行上提供一个或两个密码(请注意,这将使它们暴露给登录到系统上的其他用户)

keepass-diff <file-a> <file-b> --password-a <password-a> --password-b <password-b>

如果文件具有相同的密码,可以使用--passwords <password>标志。请注意,这同样存在上述问题。

keepass-diff <file-a> <file-b> --passwords <password>

为了避免泄露密码,请使用--same-password代替。CLI将要求您为两个文件各输入一次。

keepass-diff <file-a> <file-b> --same-password

提供密钥文件

keepass-diff <file-a> <file-b> --keyfile-a <keyfile-a> --keyfile-b <keyfile-b>

如果提供了这些标志之一,它将使用密钥文件进行身份验证。如果没有提供密码标志,它仍然会要求输入密码。

禁用脚本的彩色输出

如果您想将命令的输出管道传输到另一个文件或脚本,您可能想禁用终端颜色。您可以使用--no-color-C选项来实现。

--help将显示

keepass-diff 1.1.4
Joern Bernhardt <joern.bernhardt@googlemail.com>
This CLI-tool reads two Keepass (.kdbx) files and prints their differences.

USAGE:
    keepass-diff [OPTIONS] <INPUT-A> <INPUT-B>

ARGS:
    <INPUT-A>    Sets the first file
    <INPUT-B>    Sets the second file

OPTIONS:
    -C, --no-color                   Disables color output
    -h, --help                       Print help information
        --keyfile-a <keyfile-a>      Sets the key file for the first file
        --keyfile-b <keyfile-b>      Sets the key file for the second file
        --keyfiles <keyfiles>        Sets the same key file for both files (keyfile-a and keyfile-b would take precedence if set as well)
        --no-password-a              Sets no password for the first file (and will not ask for it)
        --no-password-b              Sets no password for the second file (and will not ask for it)
        --no-passwords               Sets no password for both files (and will not ask for both files)
        --password-a <password-a>    Sets the password for the first file (will be asked for if omitted)
        --password-b <password-b>    Sets the password for the second file (will be asked for if omitted)
        --passwords <passwords>      Sets the password for both files (if it's the same for both files)
        --same-password              Asks for password only once, and tries to open both files with it
    -v, --verbose                    Enables verbose output
    -V, --version                    Print version information

使用的库

测试

Keepass演示文件的密码为:demopass

test_file.kdbx未设置密码且没有密钥文件keyfile.keytest2_file.kdbx使用密码demopass和密钥文件keyfile.key锁定。

一个用于运行测试的小型bash脚本为run-tests.sh。它将运行一些测试以检查输出是否正确。最佳运行方式为RUSTFLAGS="-C target-cpu=native" ./run-tests.sh以获得更好的性能。

贡献

愿意帮忙吗?我相当新于Rust,所以如果有人愿意帮忙或教我一些酷的东西,请与我联系!

依赖项

约7-19MB
约228K SLoC