npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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。

截图

2FA动态验证码界面1

2FA动态验证码界面2

核心特性

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 协议开源,仅供个人学习和研究使用。