推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

TOTP基于时间的一次性密码详解

更新时间:2026-03-29 12:33:24 大小:16K 上传用户:江岚查看TA发布的资源 标签:totp 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

一、TOTP的定义与核心原理

TOTP(Time-Based One-Time Password)即基于时间的一次性密码,是一种根据特定算法和时间参数生成的动态密码,广泛应用于双因素认证(2FA)场景。其核心原理是通过共享密钥(Secret Key)和当前时间戳作为输入,经过哈希算法计算生成固定长度的一次性密码,实现身份验证的动态安全性。

二、TOTP的技术实现机制

1. 核心算法

TOTP基于HOTP(HMAC-Based One-Time Password)算法扩展而来,计算公式如下:

TOTP = HOTP(K, T) = Truncate

其中:

  • K:用户与服务端共享的密钥(128-256位)

  • T:时间戳,定义为T = floor(current Unix time / X),X为时间步长(默认30秒)

  • HMAC-SHA-1:基于SHA-1的哈希消息认证码算法(也支持SHA-256/SHA-512)

  • Truncate:动态截断函数,将哈希结果转换为6-8位数字

2. 时间步长与同步机制

默认时间步长为30秒,即每30秒生成一个新密码。为解决客户端与服务端时间偏差问题,通常允许±1个时间窗口(即90秒内有效),超过窗口则密码失效。

3. 密码生成流程

  1. 客户端与服务端预先共享密钥K

  2. 客户端获取当前Unix时间戳,计算T = floor(时间戳 / 30)

  3. T转换为8字节大端序(Big-Endian)格式

  4. 使用HMAC算法计算HMAC-SHA-1(K, T),得到160位哈希值

部分文件列表

文件名 大小
TOTP基于时间的一次性密码详解.docx 16K

【关注B站账户领20积分】

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载