OTP / 2FA 双重验证码在线生成工具
基于 JS 实现,支持 TOTP 协议。无需安装任何软件,浏览器打开即用。
在线使用
TOTP 核心代码(HTML)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OTP 验证码生成器</title>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/otpauth.umd.min.js"></script>
</head>
<body>
<div style="padding:20px;font-family:monospace;">
<h2>🔐 OTP 验证码</h2>
<label>密钥 (Base32):</label><br>
<input id="secret" type="text" value="JBSWY3DPEHPK3PXP" style="width:300px;padding:8px;"><br><br>
<div id="code" style="font-size:48px;font-weight:bold;letter-spacing:8px;">------</div>
<div id="timer" style="font-size:24px;margin-top:10px;color:#666;"></div>
</div>
<script>
const refreshTime = 30;
function generateCode() {
const secret = document.getElementById('secret').value.trim();
if (!secret) return;
const totp = new OTPAuth.TOTP({
secret: OTPAuth.Secret.fromBase32(secret),
digits: 6,
period: refreshTime
});
document.getElementById('code').textContent = totp.generate();
}
function updateTimer() {
const now = Math.floor(Date.now() / 1000);
const remaining = refreshTime - (now % refreshTime);
document.getElementById('timer').textContent = remaining + 's';
if (remaining === refreshTime || remaining === 0) generateCode();
}
generateCode();
setInterval(updateTimer, 1000);
document.getElementById('secret').addEventListener('input', generateCode);
</script>
</body>
</html>使用说明
- 从需要绑定 2FA 的网站获取 Base32 格式的密钥(通常以二维码形式提供)
- 将密钥粘贴到输入框
- 页面自动生成 6 位动态验证码,每 30 秒刷新一次
依赖说明
自定义
如需调整刷新周期,在代码中修改 refreshTime 变量即可。