在线 TOTP 验证器
一个在浏览器里运行的两步验证(2FA)验证码生成器,遵循 RFC 6238 标准,
可以替代 Google Authenticator 之类的手机 App。密钥在你的浏览器内计算与保存,
不会上传到任何服务器。
主要功能
- 标准兼容:按 RFC 6238 生成 6 位或 8 位动态验证码,支持 SHA1 / SHA256 / SHA512 三种哈希算法与 15 / 30 / 60 / 90 秒周期。
- 三种添加方式:手动输入 Base32 密钥、粘贴
otpauth:// 链接,或上传服务商给的二维码图片自动识别。
- 倒计时提醒:每个账户带圆环与进度条,最后 5 秒变红提示,到期自动刷新。
- 本地优先:未登录时数据只存本机浏览器,全程零网络请求;可选主密码加密,落盘的也是密文。
- 可选自建同步:需要多设备时,可部署配套后端,账户数据先在本机加密再上传,服务器只保存密文。
- 可自检:内置 RFC 4226 / RFC 6238 官方测试向量,一键验证当前浏览器算得是否正确。
怎么使用
- 点右上角「添加账户」,选择手动输入、链接导入或扫码导入。
- 填入名称(例如
alice@example.com)与发行方(例如 GitHub),保存。
- 卡片上会显示 6 位验证码,点一下即可复制,粘贴到需要两步验证的登录页面。
- 如需换设备使用,到「设置 → 数据」导出加密备份,或部署后端后登录同一账号同步。
和手机验证器 App 相比
优点是开箱即用、不用装 App,在电脑上登录时不必掏手机;界面支持深色模式与键盘操作。
需要注意的是:浏览器数据可能被清理(清缓存、换浏览器、无痕模式都会导致数据丢失),
所以请务必导出备份,或开启自建后端同步。
常见问题
- 验证码总是提示错误怎么办?
-
九成是时钟不准。两步验证依赖双方时间一致,误差超过一个周期就会失败。
先确认设备时间已开启自动同步;如果仍不行,到「设置 → 时钟校正」填入偏移秒数
(例如你的设备慢了 12 秒就填 12),界面会实时显示校正后的时间供你核对。
- 密钥会被别人看到吗?
-
不会。密钥只在你的浏览器里参与计算,不产生任何网络请求。就算使用自建后端同步,
上传的也是用你的口令派生出的密钥加密后的密文,服务器拿不到密钥本身——
数据库被拖走也无法还原出验证码。
- 换电脑或换浏览器后账户不见了?
-
数据默认只存当前浏览器。请在旧设备上「设置 → 数据 → 导出加密备份」,
再在新设备导入;或者部署配套后端,用同一账号登录即可自动恢复。
- 登录状态会保留多久?
-
默认一直保留:登录后就算关掉浏览器、重启电脑也不用重新登录,只有点「退出登录」
或在浏览器里清除本站数据才会失效。若在共用电脑上使用,登录时把
「在本设备保持登录」关掉,就只在本次打开期间有效。
- 支持哪些网站或服务?
-
任何支持 TOTP 两步验证的服务都可以,包括 GitHub、Google、Microsoft、
阿里云、腾讯云、AWS、各种 NAS 与自建服务。开启两步验证时选择「手动输入密钥」
或「无法扫描二维码」,把密钥填进来即可。
- 为什么验证码里的 0 中间有个点?
-
这是等宽字体 JetBrains Mono 的设计,用来区分数字 0 与字母 O。
本工具用的是点状零而不是斜线零,避免在快速念读时被误认为被划掉的字符。
- 这个网站会记录我的验证码吗?
-
不会,也无法记录。验证码是基于本机时间与密钥在浏览器内即时算出来的,
页面不向服务器发送任何与密钥相关的数据。你可以断网后继续使用来验证这一点。
技术实现
哈希与派生全部使用浏览器原生的 WebCrypto 接口:HOTP / TOTP 按 RFC 4226 与 RFC 6238 实现,
动态截断与取模方式与规范一致;可选的云端同步使用
PBKDF2-SHA256(60 万次迭代)派生密钥,再用 AES-256-GCM 加密数据。
前端为纯静态文件,不依赖任何构建工具与 CDN。