基于时间的一次性密码算法 基于时间的一次性密码算法英語Timebased OneTime Password簡稱TOTP是一种根据预共享的密钥与当前时间计算一次性密码的算法它已被互联网工程任务组接纳为RFC 标准成为主动开放认证英语Initiative For Open AuthenticationOATH的基石并被用于众多多重要素驗證系统当中 TOTP是散列消息认证码HMAC当中的一个例子它结合一个私钥与当前时间戳使用一个密码散列函数来生成一次性密码由于网络延迟与时钟不同步可能导致密码接收者不得不尝试多次遇到正确的时间来进行身份验证时间戳通常以秒为间隔从而避免反复尝试 在特定的多重因素验证应用中用户验证步骤如下一位用户在网站或其他服务器上输入用户名和密码使用运行在本地的智能手机或其他设备中的TOTP生成一个一次性密码提交给服务器并同时向服务器输入该一次性密码服务器随即运行TOTP并验证输入的一次性密码为此用户设备与服务器中的时钟必须大致同步服务器一般会接受客户端时间区间也就是延迟了秒的时间戳生成的一次性密码在此之前服务器与用户的设备必须通过一个安全的信道共享一个密钥用于此后所有的身份验证会话如需要执行更多步骤用户也可以用TOTP验证服务器