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