Skip to content

snowlyg/8Password

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

8Password Logo

8Password

一个面向个人密码与 2FA 管理场景的 Flutter 安全保管库

一个面向个人密码管理场景的 Flutter 移动应用,当前已初始化为同时支持 iOSAndroid

当前状态

  • 已支持首次启动设置主密码
  • 已支持使用主密码解锁本地保管库
  • 已支持新增密码条目,并在本地加密保存
  • 已支持按网站、App、邮箱、银行卡、身份信息等分类保存安全条目,并允许通过下拉或自定义方式分类
  • 已支持在条目中保存可选手机号字段,便于短信登录、找回账号和搜索定位
  • 已支持在条目中保存可选地址字段,并在首页显示草稿箱入口,便于继续编辑或清除未完成草稿
  • 已支持网站分类下保存可选网站地址,并可展示、搜索和复制
  • 已支持编辑、删除、搜索密码条目
  • 已支持复制用户名/密码,并在 30 秒后自动清空剪贴板
  • 已支持手动锁定与退后台自动锁定,锁定后会清空内存中的会话密钥
  • 安卓端已启用防截屏保护
  • 已支持本次会话内的生物识别快捷重解锁
  • 已支持按系统实际能力显示生物识别解锁入口,具体方式由设备系统决定
  • 已支持修改主密码,并对现有保管库数据重新加密
  • 已支持随机密码生成与 passphrase 生成
  • 已支持 otpauth://totp/... 链接导入 2FA
  • 已支持系统直接打开 otpauth:// 深链并预填 2FA 条目
  • 已支持扫描 Google Authenticator 等标准 TOTP 二维码导入 2FA
  • 已优化 2FA 导入流程:会自动预填默认字段、滚动到保存区,并允许将纯 2FA 条目直接保存
  • 已支持新增条目自动保存草稿,重新进入时可恢复;应用退后台触发锁屏前会强制保存一次草稿
  • 已支持通过短时二维码安全传输用户名、密码或当前 2FA 验证码,便于发送到电脑等其他设备
  • 已支持在同一局域网内从电脑浏览器上传本地备份并直接恢复到手机
  • 已支持将本地加密备份直接导出到手机文件中,并可通过系统分享发送到 Mac(iOS 可选 AirDrop)
  • 已支持在条目卡片内实时展示动态验证码、剩余秒数与 2FA 元信息
  • 当前仍未接入自动填充和云同步

分类默认提供 网站App邮箱银行卡身份信息服务器数据库Wi-Fi许可证2FA其他,新增/编辑时可下拉选择,也支持切换为自定义分类。

本地运行

flutter pub get
flutter run

已连接安卓设备时可指定:

flutter run -d <device-id>

当前安全设计

  • 主密码不会明文持久化
  • 使用 PBKDF2-HMAC-SHA256 派生 256 位密钥
  • 条目数据使用 AES-GCM 加密后再写入系统安全存储
  • 保管库锁定后,会清空内存中的会话密钥
  • 应用退到后台后自动锁定
  • 安卓端通过 FLAG_SECURE 降低截图和最近任务页泄露风险
  • 密码复制到剪贴板后会自动安排清理
  • 生物识别仅用于恢复当前会话,不替代首次主密码解锁
  • Android 端默认展示“生物识别解锁”,不承诺在应用内固定显示面容或指纹入口
  • 新增条目时可直接生成随机强密码
  • 2FA 密钥仅保存在本地加密保管库中,解锁后可按当前周期生成 TOTP 验证码
  • 短时二维码传输默认 30 秒后自动失效,尽量降低跨设备传输时的暴露窗口
  • 本地备份导出优先保存到 Android 的 Downloads/8Password/;iOS 保存到 App 文档目录并可通过“文件”App 访问
  • 从电脑恢复备份仅在同一局域网内临时开放上传入口,恢复完成或关闭页面后即停止监听

后续建议

  • 接入自动填充能力
  • 完善备份文件管理,例如历史备份列表和过期提醒
  • 评估是否需要跨设备同步以及同步加密方案
  • 增加 2FA 备份码、隐藏/显示验证码与更细粒度的复制策略

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages