Google Authenticator / D令牌 网页版

Google的两步验证想必大家都有听说过或者用过吧,至于D令牌则是DnsPod的两步验证,用的其实也是Google Authenticator的一模一样的算法,而Google Authenticator的算法实际上是一个叫做HOTP(参考)的东西。
由于算法是开源的,那也就是说可以用任何方法来实现它。这里我直接选了我最熟悉的php来写。考虑到这个东西肯定有人已经写过了,所以Google一下找到了这么一个神奇的类库(参考)。这个类库可以实现一些简单的功能,比如生成当前时间的二次认证的token,比如验证一个token和它的secret key是不是一致(前后差距可以有两分钟)之类的。用法我就不仔细说了,自己戳到参考链接里面可以看到详细的用法和完整的源码,这里我来说说我写的这个HOTP网页版怎么用。

由于代码比较长,所以我把代码贴到了Gist里,!猛戳这里查看!,直接从上面把代码复制下来放到一个php文件里面就好了。

看到开头的配置部分,修改对应的参数就能使用了。第一个密码是打开这个网页的需要密码,为了保密性而防止其他人使用的一个验证措施。后面是对应的账户标题和密钥。前面的标题可以随便写,只要自己能记住这个密钥是哪个账户的就行了,而后面的密钥要怎么获取呢?在DnsPod和Google绑定两步令牌的时候,我们看到的都是二维码。但是这个二维码下面会有一行小字,类似于“无法扫描二维码?”或者“手动输入绑定”之类的,点击就能看到一个密钥。把里面的空格去掉,无视大小写粘贴到php里面就行了。
首次打开的时候会让你输入密码,输入在php里面设定的那个密码就行。或者你也可以这样访问它:http://your/path/to/totp.php?key=你的密码 , 这样就不需要输入密码也能够看到你的令牌了。它会30s自动刷新,要保证你的服务器时间和标准时间误差不超过2分钟哦,不然密码就没用了。至于时区倒是不那么重要,反正是基于GMT标准时的。

4 Replies to “Google Authenticator / D令牌 网页版”

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

code