惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
雷峰网
雷峰网
博客园_首页
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
小众软件
小众软件
D
Docker
P
Proofpoint News Feed
B
Blog
Vercel News
Vercel News
B
Blog RSS Feed
U
Unit 42
月光博客
月光博客
The GitHub Blog
The GitHub Blog
Apple Machine Learning Research
Apple Machine Learning Research
Y
Y Combinator Blog
I
InfoQ
Recent Announcements
Recent Announcements

博客园 - silyvin

更新一个索引中的健 ssl pinning(四)shadowrocket补充说明,SNI路由为什么是反向代理不是正向代理,TLS termination&passthrough【重要】 - silyvin 微服务的同步异步(三)非阻塞redis客户端 nat在第几层(二)出站流量需要nat? tomcat白名单(十)passthrough配合SNI究竟在第几层【重要】 sock5代理及隧道(三)dns用谁的【yetdone】 一个字符串可以是什么 微服务的同步异步(二)一个线程多个请求与一个连接多个请求(http2),客户端的多路复用 吞吐量、线程数、队列(好像没什么用) 去中心化的jwt(二)HS256、RS256、分级 什么叫无状态 直接进老年代的大对象指的是shallow还是retained 如何定义强一致和MVCC 三方支付为什么不用双向ssl,与U盾 事务消息与本地消息表的联系 再谈线程池或连接池容量怎么定 【删除】微信支付的收单机构 【删除】TLS前向保密 缓存一致性的根本原因 ssl pinning clienthello会不会拆粘包,为什么每次wireshark看到的都是正好的 转账tcc 安全采集jvm https代理服务器(八)安卓7 https代理服务器(七)假如被CA出卖 spi 微服务的同步异步【重要】 为什么tcp要用mss oauth为什么要传输secret https代理服务器(六)再次java动态签发【成功】
去中心化的jwt(三)支付安全(三)RFC 6238 离线
silyvin · 2026-08-23 · via 博客园 - silyvin

定义了‌TOTP‌(Time-based One-time Password,基于时间的一次性密码)算法。该标准是双因素认证(2FA)的核心基石,被广泛应用于 Google Authenticator、Microsoft Authenticator 等验证器应用以及各类安全登录系统中 。‌‌

算法利用共享密钥(Secret Key)和当前 Unix 时间戳,通过 HMAC-SHA-1(或 SHA-256/SHA-512)哈希函数生成一次性密码 。

默认时间步长(Time Step)为‌30 秒‌,意味着生成的验证码每 30 秒自动刷新一次。

计算公式为 T=⌊(CurrentUnixTime−T0)/X⌋T=⌊(CurrentUnixTimeT0)/X⌋,其中 T0 通常为 0,X 为步长 。

容错机制‌:为应对客户端与服务端时钟不同步或网络延迟,验证系统通常会设置容错窗口(如接受前后相邻的时间步长内的密码)

hmacsha512(对称密钥,timestamp/30)