像google一样加一个两步动态密码验证

google的两步密码验证出来已经相当一段时间了,相信很多同学都用过,其工作原理是:

两步验证为您的 Google 帐户多加了一道安全防线

除了用户名和密码外,您还需要输入登录时 Google 通过短信或语音留言向您发送的验证码。

实际上这个东西就是类似网银口令卡的东西,但是这个实现起来更为简单,你在google账户开启了两步密码验证以后,你先得正确输入了密码,再拿出手机,查出当前的第二步密码,正确输入后才能访问你的账户,这个密码每30秒就过期并且会生成一个新密码,对了,这个东西叫做google authenticator,google是把他开源出来了的,并且有了IOS客户端Android客户端,Blackberry客户端,甚至有Nokia客户端(这个非官方出品),有算法用啥语言来实现,实际上已经不重要了!因此,用PHP来实现google authenticator算法根本不是问题,请看老外的代码 。

对!我们有了这些资源,就可以实现自己的两步密码验证了,实际上这个算法是一个叫做HOTP的东西,算法的核心根据密钥和时间戳或者计数器来算出一个一次性密码,像google authenticator是30秒一换(基于计数器的当然就是一次换一个啦),密钥只有google authenticator和服务器知道,暴露出来的仅仅是一个每30秒(或每次)换一次的token,也就是一次性密码。

google authenicator

截图是通过二维码扫描进手机的,生成二维码直接用的google charts里的qr code生成工具,这个很好用的啦!个人觉着比直接PHP gd去画来的方便啊。

这里附上一个小小的基于时间的demo,点进去玩玩(我发现时间过期很不准确,待日后再改)。

怎么样?有了google authenticator,有了现成的ios应用,android应用,你只要实现服务端,其他的都是现成的!

哈哈,充满geek激情的你,还不快动手把博客登录加上这个很酷的功能?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值