最近,鸭哥在不少交易所的安全中心,发现了一个Google身份验证器,而且需要安装一个“GoogleAuthenticator”的应用,才能正常使用,再比如咱们登录堡垒机,Github,也可以用它来验证,具体见下图:
我们如果安装好应用GoogleAuthenticator,便会每隔一段时间便会生成一个新的验证码,用于登录校验,给我的感觉,跟短信验证码类似~
# GoogleAuthenticator是什么鬼?
Google身份验证器是一款TOTP与HOTP的两步验证软件令牌,此软件用于Google的认证服务。给予用户一个六位到八位的一次性密码用于进行登录Google或其他站点时的附加验证。
维基百科
说得直白点,就是一个二次验证服务,用户需要下载该软件令牌,这样做的好处就不言而喻了,就算别人获取到你的账号密码,也进入不了你的账户。
这个鸭哥当年是身有体会的,当年搞了一批邮箱的账密,想突破二次验证,获取重要邮件,搞了一个月,都突破不了~
还是太菜了~
该项目是开源的,安卓和iOS都支持,可以在Github上面查看源码。
官网:https://github.com/google/google-authenticator
# 工作原理
它是采用的TOTP 算法(Time-based One-time Password,即基于时间的一次性密码),主要包括这3个核心部分。
1、密钥:客户端和服务器事先协商好一个密钥K,用于一次性密码的生成过程,此密钥不被任何第三方所知道。
2、验证时间:Google选择了30秒作为时间片,T的数值为从Unix epoch(1970年1月1日 00:00:00)来经历的30秒的个数。所以,你便会发现验证码30秒便会刷新一次。
3、算法:客户端对密钥和计数器的组合(K,C)使用HMAC(Hash-based Message Authentication Code)算法计算一次性密码,公式:HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))。
# 如何接入?
下面的接入代码部分参考网友分享,经过鸭哥亲自测试,可以使用。
核心代码实例代码:
测试代码:
说明:将会生成一个二维码地址,打开便是一张二维码图片,进行GoogleAuthenticator配置;可替换code值进行测试~
如果有所收获,欢迎点赞转发,要是有疑问,欢迎留言讨论~
领取专属 10元无门槛券
私享最新 技术干货