密钥与密码保险库 Android 客户端。本地优先、端到端加密,服务端同步为可选能力。
本仓库为只读存档(archived)。代码冻结于 v2.0 UI 重构版本。
- 保险库:SSH / WebDAV / API Key / 数据库 / S3 / SMB / NFS / RDP / SMTP / HTTP 等类型密钥卡片管理,密码账号(用户名/密码/TOTP)管理
- 连通性检测:SSH 等类型的在线状态与延迟检测
- 密码账号:密码强度评估、TOTP 两步验证动态码、otpauth 导出
- 工具:密码生成器(长度/字符集可调)、安全中心(弱密码 / 重复密码 / 未开两步验证检测)
- 同步:可选的多设备加密同步(信封加密,服务器只存密文),设备管理、邮箱验证
- 安全:PBKDF2-SHA256(600,000 次迭代)主密钥派生、DEK 信封加密、AES-256-GCM(AAD 绑定条目 ID)、生物识别解锁、自动锁定、剪贴板自动清除
app/src/main/java/com/keymanager/app/
├── crypto/ # CryptoManager(KDF/加解密)、VaultStore(本地存储)
├── data/ # Room 数据库、DAO、VaultRepository
├── sync/ # SyncManager(服务端同步协议,HMAC 防重放签名)
├── detect/ # DetectionEngine(连通性检测)
└── ui/
├── theme/ # 主题(Bitwarden 蓝浅色 / GitHub 暗色)
├── v2/ # 新版 UI:底部导航(保险库/工具/设置)+ 全屏二级页
├── lock/ # 解锁/初始化界面
└── home/ # 复用对话框(注册/设备管理/回收站/改密)
- JDK 17 · Android SDK 34 · Gradle 8.7 · AGP 8.5.2 · Kotlin 1.9.24 · Compose BOM 2024.06.00
- minSdk 26 / targetSdk 34
# 需先创建 local.properties 指向本机 SDK:
# sdk.dir=/path/to/android-sdk
gradle assembleDebug低内存环境下建议:
gradle assembleDebug --no-daemon -Dorg.gradle.jvmargs="-Xmx2048m" -Dorg.gradle.workers.max=2
- 客户端本地优先:所有 CRUD 离线可用,服务端同步是可选项
- 条目敏感字段以 Base64 密文入库([12B nonce][ciphertext][16B tag])
- 仓库为只读存档,如需更新请先联系维护者取消归档