Marmaladesoul/keepass-core

GitHub: Marmaladesoul/keepass-core

纯 Rust 实现的 KeePass KDBX 密码数据库格式库,提供对 KDBX3 和 KDBX4 的无损双向读写支持。

Stars: 0 | Forks: 0

# keepass-core 一个纯 Rust 实现的 [KeePass](https://keepass.info/) (KDBX) 密码数据库格式。 支持 KDBX3 和 KDBX4 的完全无损读写,保留未知的 XML 元素以实现前向兼容性。已针对 KeePass2、KeePassXC、KeeWeb、Strongbox、KeePassium 和 MacPass 进行了互操作性测试。 姊妹 crate [`keepass-merge`](crates/keepass-merge) 实现了三方合并以协调外部更改。 ## 状态 **预发布版 — 尚未发布到 crates.io。** 该库正在积极开发中。请关注本仓库以获取 v0.1 的首次发布。 ## 功能 - **KDBX3 和 KDBX4** 读写(完全双向转换) - **无损** — 未知 XML 元素将被保留并在输出时原样保留 - **纯 Rust** — 无 C 依赖 - **内存安全** — 核心 crate 中使用了 `#![forbid(unsafe_code)]` - **久经考验的加密** — 基于 `RustCrypto` 系列构建(`argon2`、`aes`、`aes-gcm`、`chacha20`、`sha2`、`hmac`、`blake2`) - 通过 `cargo-fuzz` 实现**持续模糊测试** - **互操作性矩阵** — 已针对所有主要 KeePass 客户端生成的文件进行了测试 ## 示例 ``` // Pending — API sketch: // let vault = keepass_core::Vault::open(path, password)?; // for entry in vault.entries() { // println!("{}", entry.title()); // } ``` ## 非目标 此 crate 有意**不**实现以下功能: - KeePass 1.x `.kdb`(完全不同的格式) - 密码生成、强度评估或 TOTP(这些属于应用层代码,而非格式库) - 与 KDBX 格式无关的高级便捷封装 - Async I/O(此 crate 是同步的;如需非阻塞,请使用 `spawn_blocking` 包装) - 命令行工具(后续可能会放在单独的 `keepass-cli` crate 中) ## 维护 该库主要为 [Keys](https://keys.marmaladesoul.com/)(一款商业密码管理器)的需求而维护。欢迎提交 Pull Request;我们会在能力范围内对 Issue 进行分类;回复时间不提供 SLA 保证。生产环境使用时,请指定固定版本。 ## 安全 请参阅 [SECURITY.md](SECURITY.md) 了解漏洞披露流程。 ## 许可证 采用双重许可,您可以选择以下任一许可: - [MIT 许可证](LICENSE-MIT) ([SPDX: MIT](https://spdx.org/licenses/MIT.html)) - [Apache 许可证,版本 2.0](LICENSE-APACHE) ([SPDX: Apache-2.0](https://spdx.org/licenses/Apache-2.0.html)) 除非您明确声明,否则出于包含在此作品中的目的而故意提交的任何贡献,均应按上述方式采用双重许可,且无任何附加条款或条件。 ## crates.io 上的相关 crate - [`keepass`](https://crates.io/crates/keepass) (sseemayer) — 目前的主流选择。成熟、活跃,但 KDBX4 写入支持明确处于实验阶段,并且会丢弃未识别的 XML 字段。 - [`keepass-ng`](https://crates.io/crates/keepass-ng) — 上述库的增强分支版。 - [`rust-kpdb`](https://crates.io/crates/rust-kpdb) — 双重 MIT/Apache-2.0 许可,专注于 KeePass 2。 - [`kdbx-rs`](https://crates.io/crates/kdbx-rs) — 托管在 GitLab 上的替代方案,MIT 许可。 - [`kdbx4`](https://crates.io/crates/kdbx4) — 仅限 KDBX4 读取器,不活跃。 `keepass-core` 的独特之处在于,从首个稳定版本开始就以生产级无损双向转换为目标。
标签:AES, Argon2, BLAKE2, ChaCha20, KDBX3, KDBX4, KDBX数据库格式, KeePass, RustCrypto, Rust库, XML 请求, 互操作性, 内存安全, 加密算法, 可视化界面, 安全开发, 密码库, 密码管理器, 开源组件, 持续模糊测试, 数据合并, 数据序列化, 文件解析, 知识库安全, 纯Rust实现, 通知系统, 零unsafe