@ruck-plugins/otp-2fa
v1.0.1
Published
安全、简约且高效的 2FA 令牌管理器,支持 TOTP/HOTP/Steam 多种协议。
Downloads
31
Readme
2FA动态验证码
这是一个为 ZTools 平台开发的2FA动态验证码插件,提供安全、简约且高效的 2FA令牌管理器,支持 TOTP/HOTP/Steam 多种协议。
本项目全部代码均由人工智能(AI)生成。项目作者不具备相关编程能力,无法对代码内容提供技术解释,亦不作任何功能或稳定性保证。如遇问题或有改进建议,欢迎自行修改、Fork 或提交 Issue。
截图


核心特性
1. 安全存储
- 密钥保护:采用加密逻辑保护本地存储数据。
- 硬件绑定:支持设备指纹实现开启即自动解锁。
- 隐私验证:查看密钥原文需经过身份验证。
2. 全协议支持
- 多种协议:支持 TOTP、HOTP 以及 Steam 令牌。
- 灵活配置:支持多种哈希算法及自定义验证码位数。
3. 先进交互
- 实时预览:支持在主界面同步预览下一周期的验证码。
- 智能填充:根据协议自动匹配算法规范。
- 视觉切换:支持环形与条形两种指示器模式。
4. 便捷管理
- 灵活排序:支持账号一键置顶及拖拽排序。
- 极速复制:支持点击快捷复制并提供动态反馈。
- 数据重置:支持一键清空所有数据。
5. 搜索与快速定位
- 拼音搜索:支持通过汉字、全拼、首字母快速筛选账号卡片。
- 双拼支持:可在设置中切换自然码、小鹤、拼音加加、微软、搜狗等主流双拼方案。
- 平滑动画:搜索过滤与恢复均带有流畅的卡片过渡动画。
6. 数据备份与迁移
- 加密导出:账户数据加密后复制到剪贴板,用于备份与跨设备迁移。
- 端到端加密:数据导出时加密,自动使用当前主密码解密。
- 安全导入:支持的数据一键导入,成功后自动覆盖本地数据并设定新主密码。
- 修改主密码:支持修改主密码,修改后所有账户密钥同步重新加密。
7. 资源管理
- 按需加载:弹窗组件和拼音库在首次使用时异步加载,不占用启动时间。
- 空闲关闭:前台或后台无操作 3 分钟后自动关闭进程,释放系统资源。
使用说明
基本操作
- 快速填入:点击账号卡片,自动复制并模拟输入对应验证码
- 仅复制验证码:Shift + 左键点击卡片,仅复制不自动输入
- 拖动排序:长按卡片即可自由拖动调整账号顺序
- 置顶账号:右键卡片可置顶当前账号,置顶账号不支持拖动
- 进度条样式:可在设置中切换「条形 / 环形」展示
- 下一码预览:可在设置中开启,提前显示下一轮验证码
- 拼音搜索:在顶部搜索框输入汉字、全拼或首字母快速定位账号
项目结构
.
├── public/
│ ├── logo.png # 插件图标
│ ├── plugin.json # 插件配置文件
│ └── services.js # Preload 脚本
├── src/
│ ├── components/ # UI 组件库
│ │ ├── Modals/ # 模态框组件
│ │ │ ├── ChangePasswordModal.vue # 修改主密码
│ │ │ ├── ConfirmModal.vue # 通用确认(含倒计时)
│ │ │ ├── EditModal.vue # 添加/编辑账号
│ │ │ ├── ImportDataModal.vue # 导入数据
│ │ │ ├── SetPasswordModal.vue # 设置主密码
│ │ │ ├── SettingsModal.vue # 插件设置
│ │ │ └── VerifyAuthModal.vue # 身份验证
│ │ └── AccountCard.vue # 账号条目核心组件
│ ├── composables/ # 逻辑层
│ │ ├── useAccounts.ts # 账户增删改查与解密
│ │ ├── useAuth.ts # 身份验证、密钥派生及主密码修改
│ │ ├── useDataManagement.ts # 数据导出与导入
│ │ └── useTicker.ts # 高精度计时器与令牌更新
│ ├── utils/ # 工具函数
│ │ ├── crypto.ts # 加密与安全存储集成
│ │ ├── otp.ts # OTP 核心算法实现
│ │ ├── pinyin-schemes.ts # 拼音方案常量与轻量匹配函数
│ │ └── pinyin.ts # 拼音搜索与双拼转换(由 App.vue 按需加载)
│ ├── App.vue # 插件主入口
│ ├── constants.ts # 全局常量定义
│ ├── main.css # 全局样式系统
│ └── main.ts # 项目启动引导
├── index.html # 应用入口
├── package.json # 项目配置
├── README.md # 项目说明文档
├── vite.config.js # Vite 构建配置
├── tsconfig.json # TypeScript 类型配置
└── .gitignore # 版本忽略规则快速开发
安装依赖
npm install开发模式
npm run dev构建打包
npm run build更新日志
v1.3.0
- 启动加速:首屏 JS 体积从 412 KB 降至 110 KB,启动时间缩短约 60%。
- 按需加载:所有弹窗组件和拼音库改为异步加载,首次打开时按需下载。
- 空闲关闭:前台或后台无操作 3 分钟后自动关闭插件,释放系统资源。
- 分包优化:
pinyin-pro独立拆分为异步 chunk,不混入首屏 vendor 包。 - 删除占位文字:移除启动加载提示文字。
v1.2.1
- 默认预览:下一验证码预览功能默认开启,新用户无需手动配置。
- 同名警告:添加或修改账号时,若存在同名账号,将显示橙色警告提示,二次确认后方可保存。
- 导入修复:修复导入数据后重启插件提示"无效的配置数据"的问题。
- 加载提示:账户数据加载失败时,通过通知提示用户具体哪个账户数据已损坏。
- 搜索性能:拼音缓存优化,账户列表变化时预计算拼音,降低输入延迟。
- 拖拽修复:修复搜索状态下拖拽排序操作错误账户的问题,现通过真实索引定位确保排序正确。
v1.2.0
- 拼音搜索:新增账号搜索功能,支持汉字、全拼、双拼及首字母匹配。
- 双拼方案:新增双拼搜索方案配置,支持自然码、小鹤、拼音加加、微软、搜狗五种方案,可在设置中切换。
- 启动命令:新增全拼及小鹤双拼的启动命令,可快速唤起插件。
v1.1.2
- 内存优化:退出插件后 3 分钟内未重新打开,自动结束进程释放内存。
- 样式修复:修复导入数据弹窗取消按钮背景色与其他弹窗不一致的问题。
- 体验优化:所有输入框禁用拼写检查,消除文字下方红色波浪线。
v1.1.1
- 数据导出:新增数据导出功能,加密数据后写入剪贴板。
- 数据导入:新增数据导入功能,密码验证通过后自动覆盖本地数据并更新主密码。
- 修改主密码:新增修改主密码功能,修改后所有账户密钥同步重新加密。
v1.1.0
- 鲁棒性修复:修复了 Base32 非法字符导致的计算漏洞及重置状态清理不彻底问题。
- 代码清理:移除了项目目录下冗余的演示模板文件夹,显著精简项目体积。
- 类型优化:消除了
crypto.subtle调用中的冗余类型断言,提升代码规范性。
v1.0.4
- 文档规范化:精简了插件元数据描述,并规范化了 README 说明文档。
v1.0.3
- 功能补全:修复了查看密钥的身份验证逻辑漏洞,解决了弹窗层级叠加遮挡问题。
v1.0.2
- 视觉还原:基于原始备份
dist/App.vue实现了 100% 的 UI 文本与样式还原。
v1.0.1
- 架构重构:完成从单体架构向 Composables + Components 模块化架构的全面迁移。
致谢
- 插件基于 ZTools 插件框架开发
- 插件图标使用 AppIcon Forge 制作
重要声明
本项目基于 MIT License 协议开源,仅供个人学习和研究使用。
