别再手输账号密码了:我开发了一个一键自动登录的插件

文章封面

别再手输账号密码了:我开发了一个一键自动登录的插件

做开发久了,我发现一个特别真实的问题:很多时间不是浪费在写代码、测功能、看需求上,而是浪费在“找账号”上。

测试问我:“管理员账号是多少?”

产品问我:“有没有普通用户账号?”

联调、修bug时我自己也在翻账号密码备忘录:开发环境一套,测试环境一套,预发布又一套;同一个系统还要区分管理员、运营、审核员、普通用户、异常用户;

账号越多,文档越乱;复制粘贴越频繁,输错或选错账号还得重新来。它看起来只是小麻烦,但每天重复n次,真的很消耗耐心。

真正的痛点不是“存密码”,而是“快速找到并登录”

开发测试的账号之痛

我以前也用过 Chrome 自带密码管理,也用过 Excel、飞书文档、备忘录。它们都能存账号,但解决不了开发测试场景里的几个问题:

所以我想要的不是一个“大而全”的密码保险箱,而是一个更贴近开发、测试、产品日常的小工具:打开登录页,选账号,一键填充自动登录。

这就是「账号密码管理助手」这个插件最想要解决的问题。

我为什么不用 Chrome 自带,或者 1Password?

不是它们不好,而是定位不同。

Chrome 自带密码管理适合个人常用网站,优点是浏览器原生、开箱即用。但它不太理解“测试账号”这个场景:没有项目/环境/角色标签,没有针对多账号的侧边栏筛选,也不适合批量维护一堆临时账号。

1Password、Bitwarden 这类主流密码管理工具更专业,适合个人长期密码、团队共享、跨设备同步、企业权限治理。但开发测试里很多账号只是临时的、内网的、角色验证用的,我并不想为了它们走一套复杂的云同步和团队管理流程,而且这些工具还需要付费。

这个插件更克制:只解决本机安全、多账号、多系统、多环境的快速登录问题。

三大工具对比:哪个适合开发测试?

能力 账号密码管理助手 Chrome 自带 1Password / Bitwarden
账号数据传输 账号数据零网络传输,本地加密存储 可跟随浏览器账号同步 通常依赖云同步或自建服务
加密方式 PBKDF2 600000 次 + AES-256-GCM (企业级加密) 浏览器/系统级保护 专业加密体系
开源透明 MIT 开源,可审查 不开源 部分开源/商业闭源
价格 免费 免费 高级功能多为订阅制
多账号切换 侧边栏一键填充自动登录,域名优先匹配,可收藏置顶 多账号区分弱 可以管理,但流程偏重
标签分类 多标签、收藏(LRU 淘汰)、搜索、排序 较弱 支持,但更偏通用保险库
批量导入导出 CSV / JSON / .aph 加密备份(支持预览) 能力有限 支持,但迁移成本更高
自动保存账号密码 弹窗确认(保存/暂不/屏蔽)+ 可编辑标签备注 支持,但分类弱 支持
随机密码生成 Web Crypto API,可定制长度/字符集/易混淆排除 有,简单
剪贴板自动清除 支持,延时可配置,清除前验证内容 不支持 部分支持
闲置自动锁定 支持,5/10/30/60 分钟可配 不支持 部分支持
适合场景 开发、测试、产品多账号/多系统登录 个人日常网站 长期密码、团队协作

简单来说:Chrome 是”顺手存一下”,1Password 是”专业保险库”,而这个插件更像”开发测试账号工作台”。

这个插件9大核心功能

9 大核心功能一览

一、本地安全,账号数据不上传。

二、开源免费,代码透明。

三、登录页侧边栏一键填充。

四、支持自动保存账号密码。

五、批量管理能力完整。

六、加密备份更安全更可靠。

七、密码可见性也能按需开启。

有些登录页面经常要确认密码是否填对,但是密码输入框没有自带的密码显示/隐藏切换功能,插件支持为页面密码框注入显示/隐藏切换按钮,默认关闭,需要时再打开,不会强行干扰页面。即使页面动态新增密码输入框(比如 SPA 路由切换后出现的新表单),MutationObserver也会自动检测并注入切换按钮,无需手动刷新。

八、随机密码一键生成。

九、剪贴板安全、闲时自动锁定与更多贴心细节。

and so on, 还有更多实用细节需要您来探索发现。

技术架构:给同行开发者一个交代

技术架构:给同行开发者一个交代

做开源项目,光说功能不够,技术同行还想知道”这东西是怎么搭的”。

插件基于 WXT + Vue 3 + TypeScript + Element Plus 构建,完全拥抱 Manifest V3。选 WXT 是因为它让 Chrome 扩展开发体验接近标准前端项目:HMR 热更新、多入口点管理、自动 manifest 生成,不用再手动折腾配置文件。

架构上分为五个核心入口点:

加密方案是整个项目的安全基石:

主密码 + 盐值 → PBKDF2 (600000 次迭代) → 256-bit 密钥
明文 + 密钥 + 随机 IV → AES-256-GCM → Base64(IV + 密文)

所有加密操作都是基于浏览器原生的 Web Crypto API 实现,不依赖第三方加密库。敏感字段(username、password、url、remark)加密存储,空字段不参与加密,解密失败时安全降级返回原始数据。内存中的主密码副本还额外使用HKDF + SHA-256 派生会话密钥,通过 AES-256-GCM 二次加密后再存入chrome.storage.local

通信层面,Background 作为消息路由中心处理跨组件通信:SidePanel 通过 Port 长连接实现可靠状态追踪,Content Script 和其他页面通过 sendMessage 短消息交互。WeakMap / WeakSet 缓存字段判断结果,避免内存泄漏。

我现在最常用的工作流

我的日常使用工作流

我的习惯是:

  1. 新项目先导入账号模板;
  2. 按「开发 / 测试 / 预发」和「管理员 / 普通用户 / 审核员」打标签;
  3. 高频账号点收藏置顶,有 LRU(最近最少使用) 淘汰不怕收藏满;
  4. 新增测试账号时自动保存弹窗确认,顺手编辑标签和备注;
  5. 登录页面直接用侧边栏一键填充并自动登录,需要新密码就用魔棒生成器;
  6. 定期导出加密备份,配上定时邮件提醒不遗漏;
  7. 发现重复账号,一键去重。

以前是”先找账号,再登录系统”;现在是”打开系统,直接选账号”。这个变化听起来不大,但在多角色验收、多账号回归测试、多环境联调时,效率差距非常明显。

适合谁用?

如果你是开发,经常在本地、测试、预发之间切账号,它很适合你。

如果你是测试,经常验证不同角色权限、批量维护测试账号,它会非常省时间。

如果你是产品,经常拿演示账号、验收账号、客户模拟账号看功能,它也能减少很多重复操作。

一句话:只要你有多账号、多系统、多环境登录场景,就能用得上。

快速上手:三步开始用

第一步,安装插件。

GitHub Releases下载最新版本的 zip 包,解压到你想放的目录。打开chrome://extensions/,开启「开发者模式」,点击「加载已解压的扩展程序」,选择解压后的account-password-helper 文件夹即可。

更新版本时,只需将新文件覆盖到原安装目录(manifest.json文件所在的根目录),切勿重新选择其他目录加载,Chrome 会把新目录视为全新安装,导致原有密码数据无法访问。 如何确认当前安装目录?在扩展详情页底部查看「来源:/path/to/directory」。

可以科学上网访问Google搜索的用户可以直接在Google应用商店搜索插件名安装(后续待支持)

第二步,设置主密码。

首次使用会引导你设置主密码,至少 8 位,必须包含字母、数字和特殊字符。这个主密码是解锁所有密码数据的唯一钥匙,忘了就找不回来了,只能通过「重置」清空数据重新设置。请务必牢记。

第三步,配置偏好。

在密码管理页点击「偏好设置」,可以设置悬浮按钮显示/隐藏、自动展示侧边栏、自动触发登录、密码可见性切换、悬浮按钮透明度调节等。也可以直接导入一批账号数据开始用,CSV 导入支持下载标准模板,照着填就行。

也支持 Firefox,通过 pnpm build:firefox 构建即可。

最后,说句实在的

我做这个插件,不是因为市面上没有密码管理工具,而是因为很多工具并不理解开发测试的日常。

我们需要的不是每次都打开文档找账号,也不是把一堆临时账号塞进复杂系统,而是一个轻量、顺手、安全边界清晰的小工具。

如果你也经常被“账号在哪、密码多少、这个角色能不能登录”折腾,可以试试它。

项目地址:https://github.com/liaolongdong/account-password-helper
在线演示:https://liaolongdong.github.io/account-password-helper/

如果这个插件对您有帮助,请帮忙点个⭐️,如有更好的想法或建议,欢迎提 Issue 和 Pull Request。

安全提醒:

  • 本插件仅用于开发和测试环境,严禁保存生产环境或个人敏感密码(如银行、支付、社交核心密码);
  • 主密码遗忘无法恢复,请务必牢记并妥善保管;
  • 所有数据本地 AES-256-GCM 加密存储,零网络传输;
  • 建议定期通过加密备份功能(.aph 文件)导出备份;
  • 建议开启剪贴板自动清除功能,复制密码更安心;
  • 建议配置闲置自动锁定,离开电脑时自动保护密码列表。
赞 赏