博客

博客

关于双重认证、TOTP 安全性以及保护在线账户最佳实践的文章。

TOTP验证码生成原理

RFC 6238 基于时间的一次性密码算法流程示意图

步骤 1Base32

共享密钥

共享密钥

JBSWY3DPEH...
步骤 2Unix

Unix 时间

起算秒数 1970-01-01

1741531200
步骤 3T = t / 30

时间计数器 (T)

30 秒时间步长

58051040
步骤 4HMAC-SHA

HMAC-SHA Hash

HMAC(密钥, 计数器)

160-bit digest
步骤 530 秒后失效

动态截断

482901

& 6位数字输出

RFC 6238TOTP = HOTP(SecretKey, ⌊(CurrentTime − T0) / TimeStep⌋)
T0 = 0 (Unix Epoch)•TimeStep = 30s

TOTP 算法将共享密钥与当前 Unix 时间戳(除以步长,默认 30 秒)结合,通过 HMAC-SHA-1、SHA-256 或 SHA-512 进行哈希运算,再经过动态截断生成 6 位或 8 位验证码,每 30 秒自动刷新一次。

算法对比

TOTP 实现中主流哈希算法的安全性与性能对比

算法哈希函数输出位数安全级别速度适用场景
SHA-1HMAC-SHA-1160标准最快消费级应用
SHA-256HMAC-SHA-256256增强快企业级
SHA-512HMAC-SHA-512512最高中等高安全

分步设置指南

按照以下步骤使用身份验证器应用为您的账户开启安全保护

步骤操作详情
1选择认证器从应用商店下载Google Authenticator、Authy或Microsoft Authenticator。
2在服务上启用2FA[Launch Generator ↑]进入账户安全设置,选择「启用双因素认证」。
3扫描二维码使用认证器应用扫描屏幕上显示的二维码。
4保存备份码[Save in Vault ↑]下载或记下服务提供的备份码。
5验证设置输入应用中的6位验证码以确认设置正常工作。

保持更新

获取最新的安全提示和TOTP最佳实践,直接送到您的收件箱。