如何在php中为google authenticator生成备份代码

时间:2014-06-12 08:16:26

标签: php google-authenticator

我正在使用Google Authenticator在我的网站中使用两步验证。我将this php library用于Google Authenticator。它工作正常,但现在我想生成backup codes供以后使用,但该库中没有函数可以生成backup codes

我想知道backup codes的算法以及如何在php中实现它。

1 个答案:

答案 0 :(得分:2)

无法复制算法

目前不支持此目的,以减少攻击面。目前,Google还没有计划添加此功能。

实际上,这不仅仅是复制算法的问题(这很简单)。您还需要获取算法生成代码的密钥。目前,Google身份验证器没有提供获取此密钥的方法,也没有计划这样的功能。

Issue 235: Is there an api to get the current TOTP from another app

的更多信息

解决方案1:PAM模块

PAM module可以为任何支持PAM的应用程序添加双因素身份验证步骤。此模块中支持紧急刮刮代码。你将不得不做一些shell脚本并用你的php代码调用它们。

解决方案2:使用另一个为您工作的PHP API

如果您使用的是Apache服务器,请下载名为multiOTP的免费LGPL PHP library implementing HOTP and TOTP。该库包含一个可以集成在FreeRadius中的命令行版本。

  • 在您的服务器上安装FreeRadius
  • 按照multiOTP提供的说明在FreeRadius中集成multiOTP
  • 使用Apache中的mod_auth_radius进行半径身份验证

MultiOTP与支持TOTP和HOTP的Google身份验证器完全兼容。它支持10个代码的紧急刮刮密码。