双因素身份认证就是经过你所知道再加上你所能拥有的这二个要素组合到一块儿才能发挥做用的身份认证系统。双因素认证是一种采用时间同步技术的系统,采用了基于时间、事件和密钥三变量而产生的一次性密码来代替传统的静态密码。每一个动态密码卡都有一个惟一的密钥,该密钥同时存放在服务器端,每次认证时动态密码卡与服务器分别根据一样的密钥,一样的随机参数(时间、事件)和一样的算法计算了认证的动态密码,从而确保密码的一致性,从而实现了用户的认证。就像咱们去银行办卡送的口令牌.php

多因素认证(MFA),是一种计算机访问控制的方法,用户要经过两种以上的认证机制以后,才能获得受权,使用计算机资源。MFA的目的是创建一个多层次的防护,使未经受权的人访问计算机系统或网络更加困难,从而提升安全性。html

目前大部分网站或软件已经采用二次加密使用Google Authenticator(谷歌身份验证器)动态密码。python

Google Authenticator项目在github上的地址是:https://github.com/PHPGangsta/GoogleAuthenticator

工具/原料

Google Authenticator(谷歌身份验证器)

方法/步骤

百度搜索下载或经过三方软件等下载到手机上,完成安装。

运行手机安装后"身份验证器"图标

第一次运行须要设置你的账户跟密钥(密钥可经过网站或软件获取),保存返回。

此时主界面已经显示你的动态密码,动态密码一分钟变动一次。android

【验证明现原理】git

开启Google的登录二步验证(即Google Authenticator服务)后用户登录时须要输入额外由手机客户端生成的一次性密码。

实现Google Authenticator功能须要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。

目前客户端有:

android版: Google 身份验证器

iOS版:https://itunes.apple.com/cn/app/google-authenticator/id388497605

实现原理:

1、用户须要开启Google Authenticator服务时,

1.服务器随机生成一个相似于『DPI45HKISEXU6HG7』的密钥,而且把这个密钥保存在数据库中。

2.在页面上显示一个二维码,内容是一个URI地址(otpauth://totp/帐号?secret=密钥),如『otpauth://totp/kisexu@gmail.com?secret=DPI45HCEBCJK6HG7』,下图:

3.客户端扫描二维码,把密钥『DPI45HKISEXU6HG7』保存在客户端。

2、用户须要登录时

1.客户端每30秒使用密钥『DPI45HKISEXU6HG7』和时间戳经过一种『算法』生成一个6位数字的一次性密码,如『684060』。以下图android版界面:

2.用户登录时输入一次性密码『684060』。

3.服务器端使用保存在数据库中的密钥『DPI45HKISEXU6HG7』和时间戳经过同一种『算法』生成一个6位数字的一次性密码。你们都懂控制变量法,若是算法相同、密钥相同,又是同一个时间(时间戳相同),那么客户端和服务器计算出的一次性密码是同样的。服务器验证时若是同样,就登陆成功了。

Tips:

1.这种『算法』是公开的,因此服务器端也有不少开源的实现,好比php版的:https://github.com/PHPGangsta/GoogleAuthenticator 。上github搜索『Google Authenticator』能够找到更多语言版的Google Authenticator。

2.因此,你在本身的项目能够轻松加入对Google Authenticator的支持,在一个客户端上显示多个帐户的效果能够看上面android版界面的截图。目前dropbox、lastpass、wordpress,甚至vps等第三方应用都支持Google Authenticator登录,请自行搜索。

3.现实生活中,网银、网络游戏的实体动态口令牌其实原理也差很少,你们能够自行脑补下,谢谢。

github

【插件下载】算法

一、Google Authenticator for Android - Download https://google-authenticator.en.softonic.com/android数据库

二、Google Authenticator – WordPress plugin | WordPress.org https://wordpress.org/plugins/google-authenticator/安全

三、Linux下部署SSH登陆时的二次身份验证环境记录(利用Google Authenticator) https://www.cnblogs.com/kevingrace/p/7065255.html  服务器

四、利用Google Authenticator实现用户双因素认证-https://blog.51cto.com/kbsonlong/2113665

五、python 实现google authenticator 认证- https://blog.51cto.com/12113362/2053673

google authenticator python_谷歌验证器(Google Authenticator)相关推荐

  1. google authenticator python_谷歌验证器 Google Authenticator工作原理

    很多人都听过谷歌验证 (Google Authenticator) 或用过谷歌验证 (Google Authenticator) .尤其是随着比特币等虚拟货币的兴起,各大交易所都要求绑定谷歌验证 (G ...

  2. PHP接入谷歌验证器(Google Authenticator)

    github类库地址,点击进入下载 <?php require_once 'PHPGangsta/GoogleAuthenticator.php'; //引入类库 $ga = new PHPGa ...

  3. PHP设置谷歌验证器(Google Authenticator)实现操作二步验证

    使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码.实现Google Authenticator功能需要服务 ...

  4. PHP实现谷歌验证器二次验证

    一.什么是谷歌身份验证器? 不少网站在登陆或者操作时都需要谷歌身份验证器(Google Authenticator),就是说在输入用户名和密码之后还需要输入一个动态密码,而这个动态密码由手机APP谷歌 ...

  5. 谷歌验证器的原理及JS实现

    阅读本篇文章你可以了解到谷歌验证器的实现原理,并且可以自己使用node.js实现支持谷歌验证器的两步验证. 这两年发现身边的很多应用和网站纷纷支持两步验证,并且呼吁用户使用两步验证. 并且发现,除了A ...

  6. laravel-admin加谷歌验证器

    示意图 添加谷歌验证首先需要 参考: Laravel-admin 登录添加图形验证码 构建一个自己的登录系统 安装扩展 composer require "earnp/laravel-goo ...

  7. 计算机器怎么验证,谷歌验证器【设置步骤】

    喜欢使用电脑的小伙伴们一般都会遇到win7系统谷歌验证器的问题,突然遇到win7系统谷歌验证器的问题就不知道该怎么办了,其实win7系统谷歌验证器的解决方法非常简单,按照 1:首先打开手机上的应用商店 ...

  8. linux安装谷歌验证器

    linux安装谷歌验证器 同步时间 下载程序并编译 设置pam.d/sshd 设置/etc/ssh/sshd_conf 重启sshd 登陆验证 同步时钟 root@li'bin:# service n ...

  9. DMCH支持谷歌验证器上链!

    首先介绍一下谷歌验证器(不是一般的强) 谷歌验证器是一种双因素身份安全认证器,具有双重安全保章,这个是一个移动终端的app应用,也可以布置到网站上进行安全布控,安全级别不是一般的高,类似国内支付宝所用 ...

最新文章

  1. 深度学习实现缺陷检测
  2. 内核aio_Java面试题BIO、NIO、AIO有什么区别?
  3. 神经网络:你的大脑是一台计算机吗?
  4. 使用有序GUID:提升其在各数据库中作为主键时的性能
  5. C# 8 新增小功能
  6. 1.2 边缘检测示例
  7. 机器学习之使用贝叶斯算法实现拼写检查器
  8. jQuery自定义的属性内容包含单引号、双引号,页面显示异常
  9. 英特尔第四代酷睿处理器数字和字母代表什么意思
  10. linux虚拟机镜像下载
  11. 在android中编程制作kml、kmz文件的思路
  12. c语言简单的对话机器人软件,示例:聊天机器人
  13. 如何用c语言编辑定时关机程序有说明的,C语言编写的定时关机程序
  14. c++ vector 用法总结
  15. 好用免费的电脑摄像头录视频软件分享!
  16. Vue项目axios在IE浏览器报promise错误的解决办法
  17. 费曼技巧:一张白纸提高学习效率
  18. 三极管工作原理分析!精辟、透彻
  19. 怎么安装aptdaemon模块_dlt-daemon安装教程
  20. PowerBuilder学习笔记(4)数据窗口(DataWindow)

热门文章

  1. 关于travis scott的网名_文案| 关于【太阳】的惊艳句子
  2. 与以太坊同源异流,eCash“PoW+雪崩”组合共识各司其职
  3. 【Win10系统右下角网络图标消失、无法联网、网络Internet状态闪退等问题解决方法】
  4. 为什么世界 500 强企业在逐步淘汰传统绩效考核
  5. More Effective C++之 Item M6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
  6. TI-C6657开发板烧录步骤
  7. 计算机考研面试有英语听力吗,复试英语听力与口语应该这样准备
  8. Windows下批量查找文件
  9. 【计算机网络四】网络层
  10. 从LeNet-5 CNN模型入门PyTorch