我们使用Totp算法生成OTP,它会在短时间内生效。你能告诉我如何用用户输入的otp验证生成的OTP。是否有任何方法可以比较那些或需要在某处存储密码并使用输入的otp进行验证。
请建议我哪种方式最适合验证使用Totp算法生成的OTP。
由于
答案 0 :(得分:3)
要验证令牌,您需要在服务器端自己生成OTP,并在它与用户提供的OTP之间进行恒定时间字符串相等性比较。
如果用户输入了令牌,但是在您检查之前经过了一段时间,您可能还需要生成一些较旧的令牌来检查。您可能应该限制令牌的年龄,但是您可以决定您认为令牌的年龄仍然有效。
答案 1 :(得分:0)
该技术是使用与应用/硬件令牌用于生成 OTP 代码相同的种子数据和编码方法,然后将其与提供的代码进行比较。然后由您决定是否检查当前时间窗口的任一侧,以允许服务器和用户应用/设备之间存在一定程度的时间漂移。