Android 了解Google Authenticator应用程序的工作原理

Android 了解Google Authenticator应用程序的工作原理,android,ios,cordova,phonegap-build,google-authenticator,Android,Ios,Cordova,Phonegap Build,Google Authenticator,我见过很多双因素认证应用程序,比如谷歌认证应用程序 该应用程序离线工作,每30秒重置一次手机钥匙 那么服务器如何知道哪些密钥是有效的呢 我很难理解这个 如果我自己创建这样一个应用程序。我如何才能做到这一点?Google Authenticator使用。它使用当前时间和共享密钥来计算代码。只要设备和服务器设置了正确的时间,生成的代码就会生效。Google Authenticator使用两种不同的方法: 1. “基于时间的”版本(TOTP)保持同步非常简单。(您的设备…和远程服务器…必须具有相同/正

我见过很多双因素认证应用程序,比如谷歌认证应用程序

该应用程序离线工作,每30秒重置一次手机钥匙

那么服务器如何知道哪些密钥是有效的呢

我很难理解这个


如果我自己创建这样一个应用程序。我如何才能做到这一点?

Google Authenticator使用。它使用当前时间和共享密钥来计算代码。只要设备和服务器设置了正确的时间,生成的代码就会生效。

Google Authenticator使用两种不同的方法:

1. “基于时间的”版本(TOTP)保持同步非常简单。(您的设备…和远程服务器…必须具有相同/正确的时间。)

2. “基于计数器”的版本(HOTP)保持同步(即使您的移动设备处于飞行模式),并且每隔30秒以某种方式更新其计数器内部。。。远程服务器也会这样做


我只和#1#一起工作过。。。由于谷歌不清楚#2计数器如何在移动设备和远程服务器之间不进行任何通信的情况下保持“同步”(每30秒变化一次)。

它将当前时间作为输入,然后将其散列为代码。您可以通过故意将手机设置为错误的时间来进行测试:验证器停止工作。您可能应该为您的声明提供来源。