000000
密钥必须为 base32 编码,长度为 16~128
免费在线 TOTP 生成器,无需安装,兼容 Google Authenticator,支持基于时间的一次性密码(TOTP)生成;
- 密钥:必须为有效的
base32
编码,长度在 16 ~ 128 之间; - 生成随机密钥:可生成一个长度为 64 的随机密钥;
使用HMAC-SHA1
算法进行哈希,生成的结果为 6 位的数字,时间窗口为 30 秒;
TOTP 原理
TOTP(Time-Based One-Time Password,基于时间的一次性密码)是一种动态密码生成算法,广泛用于双因素身份验证(2FA),由RFC 6238定义;它可以在不需要网络连接的情况下生成每隔一段时间变化的一次性验证码;
TOTP 基本工作流程如下:
- 共享密钥:用户和服务器之间预先共享一个 base32 编码的密钥;
- 生成时间计数器:以当前 Unix 时间(以秒为单位)除以一个固定步长(通常是 30 秒),得到一个时间计数器。
- HMAC 计算:使用 HMAC-SHA1 算法,以共享密钥和时间计数器为输入,生成一个哈希值;
- 截断:从哈希结果中提取一个 4 字节的部分,并转换为一个整数,然后对其取模生成所需长度的数字验证码(通常为 6 位);
使用 Google Authenticator
Google Authenticator 是 Google 提供的一款免费的双因素身份验证(2FA)应用程序,用于增强账户的安全性。它通过生成一次性动态验证码(OTP),在用户登录时作为第二道验证手段,常用于保护 Google、Facebook、GitHub、Dropbox 等账户。
- 打开 Google Authenticator 应用;
- 点击右下角
+
号按钮; - 选择 输入设置密钥;
- 填写以下信息:
- 账户名称:服务名称
- 密钥:base32编码,可通过本页面生成
- 密钥类型:基于时间
- 点击 添加;
添加完成后,会自动生成一个 6 位的验证码,每隔 30 秒刷新;