You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确定TOTP令牌倒计时的剩余有效时长?

计算TOTP令牌剩余过期秒数的问题

我正在开发一个小型应用,用来学习OTP相关概念,实现HOTP与TOTP令牌的生成和验证。目前卡在了计算任意时刻TOTP令牌剩余过期秒数(即MFA移动应用中显示的倒计时数值)的公式上。

RFC6238第4节仅给出公式:TOTP = HOTP(K, T),但我无法在实践中验证这一逻辑。

参考资料:TOTP算法、HOTP算法

我先通过一个带详细注释的Vanilla JavaScript示例(共42行),用静态值测试TOTP算法的各个组成部分,每个部分都配有对应的变量或公式说明。我的目标是得到一个合理的整数,代表令牌过期前的剩余时长。

但当使用静态值T=now()、T0=0和X=30时,运行公式const Ct = Math.floor((T-T0) / X)得到的结果是57075351,显然不符合预期。

之后我又实现了一个基础Angular项目,用来集成OTPAuth功能。

参考资料:OTPAuth GitHub项目、OTPAuth的NPM包、OTPAuth官方文档


内容的提问来源于stack exchange,提问作者mrjonleek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:27:43