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 在 解析实现
64 每月下载量
在 valis-core 中使用
165KB
4K SLoC
KDBX-rs
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