Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#中的TOTP问题与代码生成器和验证程序使用相同的服务器_C#_One Time Password_Totp - Fatal编程技术网

c#中的TOTP问题与代码生成器和验证程序使用相同的服务器

c#中的TOTP问题与代码生成器和验证程序使用相同的服务器,c#,one-time-password,totp,C#,One Time Password,Totp,我试图在我的项目中实现一个基于时间的OTP,其中代码生成和代码验证将由同一台服务器完成。我的全部要求是生成一个OTP,该OTP应在一段时间内有效(可配置),然后将其发送到用户电子邮件,并可选择将密码重新发送到用户电子邮件 我可以理解,一旦我们用一个timestep为一个特定的密钥生成一个代码,对于那个特定的timestep,它将为同一个密钥生成相同的代码。但是使用这种方法的问题是,假设timestep为5分钟,生成的代码有效期为5分钟。现在6分钟后,如果我再次发送代码,那么新代码将只在接下来的4

我试图在我的项目中实现一个基于时间的OTP,其中代码生成和代码验证将由同一台服务器完成。我的全部要求是生成一个OTP,该OTP应在一段时间内有效(可配置),然后将其发送到用户电子邮件,并可选择将密码重新发送到用户电子邮件

我可以理解,一旦我们用一个timestep为一个特定的密钥生成一个代码,对于那个特定的timestep,它将为同一个密钥生成相同的代码。但是使用这种方法的问题是,假设timestep为5分钟,生成的代码有效期为5分钟。现在6分钟后,如果我再次发送代码,那么新代码将只在接下来的4分钟有效,而不是5分钟,因为它是在前一个代码过期后生成的


理想情况下,从用户提出OTP请求起,有效期应为5分钟。

为什么过期时间基于最后一次过期而不是新的请求时间?此外,您是否可以共享任何示例代码?这里并没有足够的帮助。@CoolBots:这就是这个库的工作原理,基于最后一次到期,而不是最后一次请求。我在生成代码时引用的是这段代码,而不是Google Auth,使用我的同一台服务器生成并验证代码。var totp=new totp(Encoding.ASCII.GetBytes(“secretKey”);var code=totp.ComputeTotp();控制台写入线(代码);验证:var totp=new totp(Encoding.ASCII.GetBytes(“secretKey”));bool valid=totp.VerifyTotp(inputCode,out long timestepmatted,VerificationWindow.RfcSpecifiedNetworkDelay);}@CoolBots:参考代码为什么过期是基于最后一次过期而不是新的请求时间?还有,你可以分享一些示例代码吗?这里并没有足够的帮助。@CoolBots:这就是这个库的工作原理,基于最后一次到期,而不是最后一次请求。我在生成代码时引用的是这段代码,而不是Google Auth,使用我的同一台服务器生成并验证代码。var totp=new totp(Encoding.ASCII.GetBytes(“secretKey”);var code=totp.ComputeTotp();控制台写入线(代码);验证:var totp=new totp(Encoding.ASCII.GetBytes(“secretKey”));bool valid=totp.VerifyTotp(inputCode,out long timestepmatted,VerificationWindow.RfcSpecifiedNetworkDelay);}@CoolBots:参考代码