谷歌身份验证器 java demo实现 及使用中问题分析

最近公司新进项目需求:谷歌身份验证器来做一个二次因素校验,查了很多网上的例子,也自己写了demo,其中遇到了些问题,记录一下:

1.谷歌身份验证器原理简单说明

2.谷歌身份验证器的使用流程

3.谷歌身份验证器使用需要引入的jar包

4.谷歌身份验证器server端代码

5.谷歌身份验证器test端代码

6.谷歌身份验证器server端校验code要求传long型数据,如果验证码为0023456这种情况的解决

 

1.谷歌身份验证器原理简单说明

引用谷歌身份验证器,可以直接百度就可以下载了,应用商店中不一定会有这个软件,至少我用的华为就没搜索到,直接手机浏览器搜索下载即可。

谷歌身份验证器不需要引入谷歌的API来实现,主要是通过加密算法来实现的身份统一。

手机端需要拿到用户的secret密钥,从而计算得出6位的动态验证码。这个获取密钥的途径可以通过两种场景实现:

1)服务端产生加密密钥并生成二维码展示给用户,用户直接扫码即可识别密钥并产生动态验证码的服务

2)直接展示给用户密钥串,用户在手机端主动输入

通过这两种方式都可以将用户的secret记到当前设备上。

具体原理就是:客户端和服务端使用相同的密钥,相同的算法,最终在验证时,因为可能会存在时差的问题,服务端实际上是校验了大约四组数据与当前输入的6位动态验证码,有一组相同即认为是通过了验证。

2.谷歌身份验证器的使用流程

 

这是我理解的流程;

3.谷歌身份验证器使用需要引入的jar包

        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.12</version>
        </dependency>

主要是这个jar包,jdk用的是1.8版本的&#

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值