#keepass #password #kdbx #read-write #file-format

bin+lib keepass-db

KeePass 密码数据库库和工具

2 个版本

0.0.2 2023 年 10 月 1 日
0.0.1 2023 年 9 月 12 日

1787密码学

MIT 许可证

255KB
6.5K SLoC

KeePass-DB: KBD 和 KBDX 文件格式的 KeePass 数据库

KeePass-DB GitHub Actions KeePass-DB on crates.io KeePass-DB on docs.rs Chat codecov.io dependency status License file

读写 KeePass 密码数据库。这应该能够读取官方 KeePass 软件包支持的 所有已知版本,以及仅通过扩展支持的少数变体。

写入支持目前为实验性。

示例代码

根据网站 URL 查找并打印密码

use keepass_db::{KeePassDoc, protected_stream::CipherValue, Key};
fn main() -> Result<(), Error> {
    let mut key = Key::new();
    key.set_user_password("secret");
    let mut doc = KeePassDoc::load_file("passwords.kdbx", &key)?;
    let database = doc.file;
    let stream = &mut doc.cipher;
    let basic_entry = database.root_group().all_entries().filter(|e| e.url().unprotect(stream).unwrap() == "https://www.example.com/").last().unwrap();
    println!("Password: {}", basic_entry.password().unprotect(stream).unwrap());
    Ok(())
}

特性

默认特性

  • argonautica: 默认,经过良好测试的 Argon2 实现

可选特性

  • rust-argon2: 原始 Argon2 支持。不推荐使用。不得与其他 Argon2 特性一起启用。
  • argon2-kdf: 原始 C 实现 Argon2。不得与其他 Argon2 特性一起启用。
  • write: 实验性: 启用对 KeePass 数据库的写入支持。

Rust 版本要求

最低支持 Rust 版本 (MSRV) 目前为 Rust 1.70.0

MSRV 已在 CI 中明确测试。它可能在次要版本中提升,但这不会轻易进行。

许可证

本项目采用

依赖关系

~15–30MB
~500K SLoC