当前标签: 一次性密码

像google一样加一个两步密码验证03/11/2012

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

让我膜拜一下全文吧 »

| 12条评论分类: 我爱PHP 标签:  

PHP界大牛们
反人类不分昼夜
牛掰级朋友圈子