我想知道移动验证器是如何工作的(比如 Battle.net 、 rift ,有些银行有,等等),所以我可以为我自己的网站制作一个(只是为了好玩)。
我了解基础知识:验证器具有与电话相关的代码和与网站相关的代码。用户在网站上输入电话代码。然后可以生成相关的 token (使用电话和网站代码)。
我只是想知道 token 是如何创建的。这有标准算法吗?该算法如何工作?任何现有的 PHP 库都可以做这样的事情(例如)?
最佳答案
看看Google Authenticator .已经有适用于此的 iPhone、Android 和黑莓应用程序,这是一个既定的协议(protocol)。
他们将其实现为 open-source PAM module您可以将其与 PECL PAM 一起使用包。
有一个pure PHP version但我没有使用过,所以不能保证。
spec不是那么那么复杂,所以您可以自己实现它,特别是如果您转换了 C 模块。那里链接的规范详细解释了它的工作原理。
编辑: 我想回答最初的问题,这是一个 RFC,所以它在某种程度上是标准化的,它是一个完全开放的规范,使用它的工具是完全开源的。这些协议(protocol)称为 HOTP 和 TOTP。前者是基于计数器的 HMAC(因此使用第 n 个密码),而后者是基于时间的(因此密码每 30 秒循环一次)。
关于php - 移动身份验证器如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6430024/