2FA 是指使用两种不同类型的身份验证因素来确认用户的身份。
github 举例
MFA(多因素身份验证)和2FA(双因素身份验证)都是用于增强账户安全性的方法。它们的目标是通过要求用户提供两个或多个身份验证因素,以确保只有授权用户能够访问账户或系统。
MFA包括2FA,但不限于两个因素。常见的身份验证因素包括:
动态口令
一种 MFA 的实现方式
Time-based One-Time Password(TOTP)是一种基于时间的一次性密码算法,用于增强身份验证的安全性。
TOTP基于HMAC(Hash-based Message Authentication Code)算法和时间戳生成一次性密码。用户和服务器之间共享一个密钥,通常在初始化身份验证时交换。基于该密钥,服务器生成一个用于验证的初始值。
在每个时间步长(通常是30秒),基于当前时间戳和共享密钥,使用HMAC算法生成一个哈希值。然后,从哈希值中提取一个固定长度的动态密码。这个动态密码在设定的时间步长内有效,之后会自动失效。