当前位置: 首页 > news >正文

TOTP算法与HOTP算法

1、算法定义

        TOTP(Time-based One-Time Password)和 HOTP(HMAC-based One-Time Password)是两种常见的动态口令生成算法,均基于哈希运算生成一次性密码。两者的相同点和差异如下:

        两者相同点:

        1)​​基于HMAC的哈希运算​:两者均使用 ​​HMAC(Hash-based Message Authentication Code)​​ 作为核心算法,通常采用 ​​SHA-1​​(或其他哈希算法如SHA-256)生成一次性密码。

        2)​​共享密钥​​:都需要预先在客户端(如令牌/App)和服务端之间共享一个 ​​静态密钥(Secret Key)​​,用于生成和验证密码。

        3)一次性密码​​:生成的密码均为一次性有效,使用后即失效,增强安全性。

        4)标准化实现​​:均遵循 ​​RFC标准​​(HOTP: RFC 4226;TOTP: RFC 6238),兼容性高。

       两者差异:​

​特性​

​HOTP​

​TOTP​

​触发机制​

基于事件(计数器递增)

基于时间(当前时间窗口)

​动态因子​

计数器(Counter)

时间戳(Timestamp)

​同步要求​

需同步计数器(客户端和服务端一致)

需时间同步(允许±时间容差)

​使用场景​

硬件令牌、无网络环境

软件令牌(如Google Authenticator)

​防重放攻击​

依赖计数器递增,需服务端记录最新值

时间窗口过期后密码失效

2、算法应用

2.1、HOTP(基于计数器)的应用​

        HOTP 主要用于 ​​事件触发的动态口令​​,适用于需要离线生成或手动触发

        1)硬件令牌(OTP设备)

        如 ​​YubiKey(部分模式)​​、RSA SecurID(早期版本)等物理设备,用户按下按钮生成密码,计数器递增;适用于无网络环境(如企业内网)。

        2)银行动态口令卡

        部分银行的实体令牌(如华夏银行的动态口令牌),每次交易需生成新密码,依赖计数器同步。

2.2、​TOTP(基于时间)的应用

        TOTP 主要用于 ​​时间敏感的动态口令​​,依赖时间同步,适合互联网服务。

        1)软件认证器

        Google Authenticator​​、Microsoft Authenticator、Authy 等App均采用TOTP,为账户生成30秒刷新的6位数密码。

        2)企业VPN/云服务登录

        如 ​Cisco VPN​​、阿里云、腾讯云等,通过TOTP实现双因素认证。

        3)智能家居与IoT设备

        部分智能设备(如NAS系统)通过TOTP实现安全配置访问。

        智能门锁中还可以应用TOTP生成短时离线开锁的数字密码。

http://www.lryc.cn/news/621363.html

相关文章:

  • 下标访问操作符 [] 与函数调用操作符 ()
  • 【软考中级网络工程师】知识点之常用网络诊断和配置命令
  • Qt---Qt函数库
  • 深度学习-卷积神经网络CNN-膨胀卷积、可分离卷积(空间可分离、深度可分离)、分组卷积
  • 小知识点:splice与slice
  • 5.Ansible-playbook-模块介绍(知识点补充)
  • 【从零开始学习Redis】项目实战-黑马点评D1
  • Rabbitmq+STS+discovery_k8s +localpv部署排坑详解
  • 迅雷链接在线解密解析工具系统源码/本地化API/开源(源码下载)
  • TCP 连接管理:深入分析四次握手与三次挥手
  • NetLimiter:精准掌控网络流量,优化网络体验
  • vue3+leaflet案例:告警系统GIS一张图(附源码下载)
  • 新增和编辑共用弹窗模板
  • 深度解析 Vue 高阶技巧:提升工程化能力的实用方案
  • 机器人伴侣的智能升级:Deepoc具身智能模型如何重塑成人伴侣体验
  • AI驱动的智能爬虫架构与应用
  • C++中的链式操作原理与应用(三):专注于异步操作延的C++开源库 continuable
  • 开发避坑指南(26):Vue3 input输入框前置后 置元素解决方案
  • uniapp开发动态添加密码验证
  • 【力扣322】零钱兑换
  • C++ 排序指南
  • Kafka下载和安装
  • Ubuntu 22.04 远程桌面设置固定密码的方法
  • HQA-Attack: Toward High Quality Black-Box Hard-Label Adversarial Attack on Text
  • CoreShop商城框架开启多租户(3)
  • PyTorch 2025全解析:从基础到前沿,深度学习框架的技术演进与实战指南
  • ESP32入门开发·通用硬件定时器 (GPTimer)
  • C# 高并发处理方式
  • 算法题Day1
  • torchvision中数据集的使用与DataLoader 小土堆pytorch记录