Two-factor authentication

2FA 是指使用两种不同类型的身份验证因素来确认用户的身份。

github 举例

2MFA和 MFA 区别

MFA(多因素身份验证)和2FA(双因素身份验证)都是用于增强账户安全性的方法。它们的目标是通过要求用户提供两个或多个身份验证因素,以确保只有授权用户能够访问账户或系统。

MFA包括2FA,但不限于两个因素。常见的身份验证因素包括:

  1. 知识因素:例如密码或PIN码。
  2. 所有权因素:例如手机或硬件令牌收到的验证码。
  3. 生物特征因素:例如指纹扫描或眼球扫描。

TOTP算法

动态口令

一种 MFA 的实现方式

Time-based One-Time Password(TOTP)是一种基于时间的一次性密码算法,用于增强身份验证的安全性。

TOTP基于HMAC(Hash-based Message Authentication Code)算法和时间戳生成一次性密码。用户和服务器之间共享一个密钥,通常在初始化身份验证时交换。基于该密钥,服务器生成一个用于验证的初始值。

在每个时间步长(通常是30秒),基于当前时间戳和共享密钥,使用HMAC算法生成一个哈希值。然后,从哈希值中提取一个固定长度的动态密码。这个动态密码在设定的时间步长内有效,之后会自动失效。