跳转到内容
Me2eM

确定性密码管理器

一个种子短语——每个服务的强唯一密码:在设备上即时导出。无需存储,无需破解,无需重置。

零存储 相同种子——相同密码 按上下文隔离 无需重置

你可以构建什么

没有存储的密码管理器:每个服务的秘密从用户的种子短语和该服务的名称导出——在每个设备上结果相同,永远如此,且永远不会在任何地方持久化。新手机加十二个词即可恢复所有密码。

它是如何工作的

每个上下文的 Handle 导出每个服务上下文的一个秘密:

const work = await identity.deriveHandle('work');
const githubSecret = work.derivePassword('github.com', 32);
const jiraSecret   = work.derivePassword('jira.internal', 32);

@me2em/crypto 添加了护栏:为需要用户手动输入而非导出的秘密配置 Argon2id,以及对罕见的手选密码进行 HIBP 泄露检查。

优势

  • 零存储。 没有存储文件、没有云同步、没有攻击面——密码仅在使用的瞬间存在。
  • 确定性恢复。 相同种子 + 相同上下文 → 相同秘密,在每个设备上,无需同步。
  • 按上下文隔离。 工作 Handle 被入侵永远不会导出个人 Handle 的秘密。
  • 不存在重置流程。 没有”忘记密码”,因为没有存储密码。

权衡

  • 种子是唯一的失败点。 丢失短语——每个导出的密码都丢失了;按设计没有恢复。
  • 旋转是结构性的。 更改秘密意味着更改其上下文名称——计划按服务的旋转而非就地更新。
  • Alpha。 包 API 是 1.0 之前版本;固定版本。

链接

没有找到你的场景?

协议的术语是领域中立的——新场景映射到相同的原语。从quick start开始或阅读证明如何携带可委托信任。