news 2026/8/18 15:22:04

Flipper Authenticator中TOTP与HOTP怎么选?一文搞懂两种动态口令的核心区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flipper Authenticator中TOTP与HOTP怎么选?一文搞懂两种动态口令的核心区别

Flipper Authenticator中TOTP与HOTP怎么选?一文搞懂两种动态口令的核心区别

【免费下载链接】flipper-zero_authenticatorSoftware-based TOTP/HOTP authenticator for Flipper Zero device.项目地址: https://gitcode.com/gh_mirrors/fl/flipper-zero_authenticator

Flipper Authenticator 是一款运行在 Flipper Zero 设备上的软件动态口令认证器,同时支持 TOTP 与 HOTP 两种动态口令算法。很多新手在添加令牌时都会纠结同一个问题:TOTP 与 HOTP 到底有什么区别?我的验证码应该选哪一种?本文将用最通俗的语言,从工作原理、刷新方式到适用场景,带你一次搞懂两种动态口令的核心区别,并给出最实用的选择建议。

什么是TOTP动态口令:基于时间的动态口令

TOTP(Time-based One-time Password,基于时间的一次性口令,RFC 6238)是当下最常见的动态口令方案。Google、GitHub、微软等主流平台的两步验证码基本都是它。

它的核心原理只有一句话:用"密钥 + 当前时间"算出验证码

  • 把当前时间按固定步长(默认 30 秒)切成一个个"时间片";
  • 用密钥和时间片做 HMAC 运算,截取出 6 位数字;
  • 每个时间片对应一个验证码,30 秒后自动作废并刷新。

这正是你手机上验证码"带倒计时、会自动变"的原因。在 Flipper Authenticator 中,你还可以通过-l参数把有效期从 15 秒调整到 255 秒,默认 30 秒(见 cli_help.txt)。

什么是HOTP动态口令:基于计数器的动态口令

HOTP(HMAC-Based One-time Password,基于 HMAC 的一次性口令,RFC 4226)是更"老派"的方案。它的核心是计数器

  • 用"密钥 + 计数器"算出验证码;
  • 每使用一次,计数器就加 1,下一个验证码随之变化;
  • 服务器端和客户端必须保持计数器同步,才能验证成功。

打个比方:TOTP 像按"闹钟"走时,HOTP 像按"序号"翻页。Flipper Authenticator 支持在添加令牌时用-i指定 HOTP 的初始计数器,并在 token_info.h 中通过TokenTypeTOTP/TokenTypeHOTP区分两种令牌类型。

TOTP与HOTP核心区别对比表

对比项TOTP 动态口令HOTP 动态口令
全称Time-based OTP(基于时间)HMAC-Based OTP(基于计数器)
标准RFC 6238RFC 4226
变化依据当前时间 ÷ 时间步长计数器逐次递增
刷新方式每 30 秒自动刷新使用一次后手动/自动前进
是否受时钟影响✅ 受时区与时间同步影响❌ 不受时钟影响
同步风险时间不同步会失效计数不同步会失效
典型场景各大网站两步验证离线系统、老式银行令牌

一句话总结:TOTP 看"时间",HOTP 看"次数"。两者的底层 HMAC 计算逻辑其实完全一样,区别只在于"输入参数"是时间片还是计数器,这一点在 totp.c 的totp_at()hotp_at()两个函数中体现得淋漓尽致。

动态口令怎么选:新手选择指南

面对选择时,请按下面的优先级来判断:

  1. 默认选 TOTP✅ 绝大多数网站、App 的两步验证都使用 TOTP,你扫码添加的"验证码密钥"基本都是 TOTP 类型;
  2. 服务商有说明就照做📖 如果平台明确写了"Counter-based"或"基于计数器",那才选 HOTP;
  3. 设备没有时钟的场景选 HOTP🔧 某些不支持时间同步的离线系统,只能靠计数器保证动态性;
  4. 拿不准就选 TOTP💡 因为 TOTP 不需要手动同步,容错性更好,30 秒后自动换码。

在Flipper Authenticator中添加TOTP/HOTP令牌的快速方法

添加令牌可以通过 CLI 一条命令完成(支持-t指定类型):

totp add my_token -t totp # 添加 TOTP 令牌(默认) totp add bank_token -t hotp -i 100 # 添加 HOTP 令牌并指定初始计数器

参数说明:-t可选totphotp-i仅对 HOTP 生效,-a可选 sha1/sha256/sha512 哈希算法,-d可选 5/6/8 位验证码。所有令牌信息(类型、算法、有效期、计数器)都会保存在 totp.conf 配置文件中,其中TokenTypeTokenCounter两个字段正是控制动态口令类型的关键。

关于动态口令的常见问题(FAQ)

Q:HOTP 计数器不同步了怎么办?A:在 Flipper Authenticator 中用totp update <index> -i <新计数>把计数器改成服务器端当前值即可重新同步。

Q:时区设置会影响 TOTP 吗?A:会。TOTP 依赖 UTC 时间,建议在应用设置中把Timezone偏移量配置正确,否则验证码可能对不上。

Q:能不能同时管理 TOTP 和 HOTP 令牌?A:完全可以。Flipper Authenticator 的令牌列表可混合存放两种类型,生成验证码时会根据TokenType自动走对应算法。

总结

TOTP 与 HOTP 都是成熟可靠的动态口令方案:TOTP 靠时间驱动、自动刷新、适合绝大多数联网平台;HOTP 靠计数器驱动、不依赖时钟、适合特定离线场景。对新手而言,优先选择 TOTP基本不会错。搞懂这两种动态口令的核心区别后,无论你的验证码来自哪里,都能在 Flipper Authenticator 中快速正确地配置。😊

【免费下载链接】flipper-zero_authenticatorSoftware-based TOTP/HOTP authenticator for Flipper Zero device.项目地址: https://gitcode.com/gh_mirrors/fl/flipper-zero_authenticator

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/18 15:12:24

4步搞定二进制编辑:Notepad--从看懂乱码到精准定位

4步搞定二进制编辑&#xff1a;Notepad--从看懂乱码到精准定位 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器&#xff0c;目标是做中国人自己的编辑器&#xff0c;来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- Notepad…

作者头像 李华
网站建设 2026/8/18 15:11:02

TV Bro电视浏览器实战指南:遥控器大屏上网最简单方案

TV Bro电视浏览器实战指南&#xff1a;遥控器大屏上网最简单方案 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro 如果你受够了在电视上眯着眼睛找链接、用遥控器反复按错…

作者头像 李华