dragon8997474 2013-04-21 18:01
浏览 84
已采纳

使用Google身份验证应用进行双向身份验证

Can someone guide me on what I've done wrong with implementing Google authentication app? Here is what I've tried without success:

1# Create secret key

$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; // allowed characters in Base32
$secret = ''; 
for ( $i = 0; $i < 16; $i++ )
{   $secret .= substr( $chars, mt_rand( 0, strlen( $chars ) - 1 ), 1 );  }

2# Create QR code via google service (description+secret key)and scan by smart phone and 6 digit is generating in every 30sec by Google-authentication app

3#. Now I'm trying to verify it ...([use base32 algo][1])

$tm = floor( time() / 30 );    // for time purpose  
$secretkey=Base32::decode($secretkey); // return blank
$time=chr(0).chr(0).chr(0).chr(0).pack('N*',$tm+$i);

// Hash it with users secret key
$hm = hash_hmac( 'SHA1', $time, $secretkey, true );

// Use last nipple of result as index/offset
$offset = ord(substr($hm,-1)) & 0x0F;

// grab 4 bytes of the result
$hashpart=substr($hm,$offset,4);

// Unpak binary value
$value=unpack("N",$hashpart);
$value=$value[1];

// Only 32 bits
$value = $value & 0x7FFFFFFF;
$value = $value % 1000000;

The above code is based on other sources(wordpress google authentication app)...but it's not working.

$secretkey=Base32::decode($secretkey); always returns blank (empty)

Is there another way how to verify or implement time-based algo? Or a link where I can read about how to code for 2-way authentication for site?

Thanks for advance and appreciable effort. (I think its a security purpose question so I have put here instead of stackoverflow.. :) )

  • 写回答

1条回答 默认 最新

  • drjk87189 2013-05-10 08:00
    关注

    Implemented by using github.com/chregu/GoogleAuthenticator.php

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?