#kdbx #password #keepass #parser

bin+lib kdbx-rs

Keepass 2 (KDBX) 密码数据库解析和创建

10 个不稳定版本 (4 个重大更改)

0.5.1 2023 年 9 月 14 日
0.5.0 2023 年 9 月 14 日
0.4.0 2023 年 1 月 24 日
0.3.0 2022 年 11 月 5 日
0.1.2 2020 年 5 月 23 日

#582解析实现

Download history 41/week @ 2024-03-11 15/week @ 2024-03-18 29/week @ 2024-04-01 6/week @ 2024-04-08 5/week @ 2024-04-15 60/week @ 2024-04-22 10/week @ 2024-04-29 9/week @ 2024-05-06 8/week @ 2024-05-13 16/week @ 2024-05-20 10/week @ 2024-05-27 24/week @ 2024-06-03 16/week @ 2024-06-10 14/week @ 2024-06-17 9/week @ 2024-06-24

64 每月下载量
valis-core 中使用

GPL-3.0+

165KB
4K SLoC

KDBX-rs

文档 | 仓库 | crates.io

Rust 读取和写入 KDBX 库的库。

示例代码

从密码数据库获取条目

use kdbx_rs::{self, CompositeKey, Error};
fn main() -> Result<(), Error> {
    let file_path = "./res/test_input/kdbx4-argon2d.kdbx";
    let kdbx = kdbx_rs::open(file_path)?;
    let key = CompositeKey::from_password("kdbxrs");
    let unlocked = kdbx.unlock(&key)?;

    let password = unlocked.find_entry(|e| e.url() == Some("https://example.com"))
        .unwrap()
        .password();

    println!(password);
    Ok(())
}

生成新的密码数据库

let mut database = Database::default();
database.set_name("My First Database");
database.set_description("Created with kdbx-rs");

let mut entry = Entry::default();
entry.set_password("password1");
entry.set_url("https://example.com");
entry.set_username("User123");

database.add_entry(Entry);

将数据库保存到文件

let mut database = Database::default();
let kdbx = Kdbx::from_database(database);
kdbx.set_key(CompositeKey::from_password("foo123"))?;

let mut file = File::create("/tmp/kdbx-rs-example.kdbx")?;
kdbx.write(&mut file)?;

截至 2020 年 5 月的 Rust Keepass 库比较

kdbx-rs keepass-rs kdbx4 rust-kpdb rust-keepass
许可证 GPLv3+ MIT MIT MIT/Apache ISC
格式
.kdbx 4 只读 只读
.kdbx 3 只读 只读
.kdb
算法
KDFs
AES
Argon 2
数据库加密
AES
TwoFish
Chacha20
值加密
Chacha20
Salsa20
功能
内存保护
密钥文件认证
Windows 认证
KeepassXC OTPs
自定义字段
条目历史记录

许可证

此软件包根据 GPLv3.0 或更高版本许可,有关详细信息,请参阅 LICENSE.txt

依赖关系

~4.5MB
~87K SLoC