2 个版本
0.0.2 | 2023 年 10 月 1 日 |
---|---|
0.0.1 | 2023 年 9 月 12 日 |
1787 在 密码学
255KB
6.5K SLoC
KeePass-DB: KBD 和 KBDX 文件格式的 KeePass 数据库
读写 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