返回赛题列表
2FA 验证码器
进阶一个纯前端的 TOTP 两步验证码生成器,输入密钥即可生成 6 位动态验证码,替代手机上的 Authenticator 应用。
规则说明▼
phase1:仅给出一句话需求,不提供任何功能细节或设计约束,完全考验模型对"2FA 验证码工具"的自主理解和产品直觉
phase2:给出完整的功能列表和详细设计规范,考察模型对 TOTP 算法的工程实现能力和工具型产品的完成度
phase3:基于 phase1 的一句话需求,先让模型自行撰写 PRD,再根据 PRD 输出代码;考察模型在无详细约束下的产品规划能力,以及 PRD 中间步骤能否带来更系统化的设计
Prompt▼
phase1:▼
制作一个单文件 HTML 2FA 验证码生成器(TOTP Authenticator),输入密钥后能生成实时刷新的 6 位动态验证码
phase2:▼
制作一个单文件 HTML 2FA 验证码生成器(TOTP Authenticator),核心用途是**替代手机上的 Google Authenticator / Authy**——在桌面浏览器中直接生成 TOTP 动态验证码,免去掏手机的麻烦。
功能要求:
1. 密钥录入:支持手动输入 Base32 编码的 TOTP 密钥(Secret Key),输入时自动忽略空格和大小写差异
2. URI 解析:支持粘贴 `otpauth://totp/...` 格式的 URI,自动解析出账户名(issuer + account)和密钥等参数
3. TOTP 算法实现:在纯前端使用 Web Crypto API 实现 HMAC-SHA1 签名,按照 RFC 6238 标准计算 6 位动态验证码(默认 30 秒时间步长)
4. 实时倒计时:显示当前验证码剩余有效秒数的环形或条形进度条,每秒刷新,到期自动生成新验证码
5. 多账户管理:支持添加多个账户,以卡片列表形式展示,每个卡片显示账户名、当前验证码和倒计时
6. 一键复制:点击验证码或复制按钮即可复制到剪贴板,复制后有短暂的视觉反馈(如变色、打勾动画)
7. 数据持久化:使用 localStorage 保存所有已添加的账户和密钥,页面刷新后自动恢复
8. 账户编辑与删除:支持编辑账户名称、删除单个账户,删除前需二次确认
9. 搜索与过滤:当账户数量较多时,提供搜索框按名称快速筛选
10. 导入导出:支持将所有账户数据导出为加密或明文 JSON 文件,以及从 JSON 文件导入恢复
11. 验证码大字体展示:验证码数字使用大号等宽字体,中间加空格分组(如 `123 456`),方便快速阅读和输入
设计要求:
- 整体风格简洁专业,深色主题为主(类似 1Password / Authy 的暗色风格)
- 每个账户卡片需清晰展示:服务商图标占位(首字母头像)、账户名、6 位验证码、倒计时进度
- 倒计时进度条在剩余时间不足 5 秒时变为警告色(如红色/橙色),提示用户抓紧复制
- 移动端响应式布局,单列卡片堆叠,触控友好
- 添加账户的入口醒目但不喧宾夺主(如顶部固定的 + 按钮或 FAB 悬浮按钮)
phase3(2 steps)▼
phase3 step1:▼
以下是一个设计需求:
"制作一个单文件 HTML 2FA 验证码生成器(TOTP Authenticator),输入密钥后能生成实时刷新的 6 位动态验证码"
请你根据这个需求,撰写一份详细的产品需求文档(PRD),不要写代码,只输出 PRD。
phase3 step2:▼
根据你自己的 PRD 文档,请输出完整的单文件 HTML(包含内联 CSS 和 JS)。要求完美还原 PRD 中描述的所有功能与视觉设计。