- 浏览: 494876 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (563)
- 工作经验 (12)
- 数据库 (13)
- Servlet (10)
- Struts2 (1)
- Spring (25)
- Eclipse (5)
- Hibernate (5)
- Eclips (8)
- HTTP (7)
- J2EE (21)
- EHcache (1)
- HTML (11)
- 工具插件使用 (20)
- JPA (2)
- 杂谈 (17)
- 数据结构与算法 (3)
- Cloud Foundry (1)
- 安全 (10)
- J2SE (57)
- SQL (9)
- DB2 (6)
- 操作系统 (2)
- 设计模式 (1)
- 版本代码管理工具 (13)
- 面试 (10)
- 代码规范 (3)
- Tomcat (12)
- Ajax (5)
- 异常总结 (11)
- REST (2)
- 云 (2)
- RMI (3)
- SOA (1)
- Oracle (12)
- Javascript (20)
- jquery (7)
- JSP自定义标签 (2)
- 电脑知识 (5)
- 浏览器 (3)
- 正则表达式 (3)
- 建站解决问题 (38)
- 数据库设计 (3)
- git (16)
- log4j (1)
- 每天100行代码 (1)
- socket (0)
- java设计模式 耿祥义著 (0)
- Maven (14)
- ibatis (7)
- bug整理 (2)
- 邮件服务器 (8)
- Linux (32)
- TCP/IP协议 (5)
- java多线程并发 (7)
- IO (1)
- 网页小工具 (2)
- Flash (2)
- 爬虫 (1)
- CSS (6)
- JSON (1)
- 触发器 (1)
- java并发 (12)
- ajaxfileupload (1)
- js验证 (1)
- discuz (2)
- Mysql (14)
- jvm (2)
- MyBatis (10)
- POI (1)
- 金融 (1)
- VMWare (0)
- Redis (4)
- 性能测试 (2)
- PostgreSQL (1)
- 分布式 (2)
- Easy UI (1)
- C (1)
- 加密 (6)
- Node.js (1)
- 事务 (2)
- zookeeper (3)
- Spring MVC (2)
- 动态代理 (3)
- 日志 (2)
- 微信公众号 (2)
- IDEA (1)
- 保存他人遇到的问题 (1)
- webservice (11)
- memcached (3)
- nginx (6)
- 抓包 (1)
- java规范 (1)
- dubbo (3)
- xwiki (1)
- quartz (2)
- 数字证书 (1)
- spi (1)
- 学习编程 (6)
- dom4j (1)
- 计算机系统知识 (2)
- JAVA系统知识 (1)
- rpcf (1)
- 单元测试 (2)
- php (1)
- 内存泄漏cpu100%outofmemery (5)
- zero_copy (2)
- mac (3)
- hive (3)
- 分享资料整理 (0)
- 计算机网络 (1)
- 编写操作系统 (1)
- springboot (1)
最新评论
-
masuweng:
亦论一次OutOfMemoryError的定位与解错 -
变脸小伙:
引用[color=red][/color]百度推广中运用的技术 ...
Spring 3 mvc中返回pdf,json,xml等不同的view -
Vanillva:
不同之处是什么??
Mybatis中的like查询 -
thrillerzw:
转了。做个有理想的程序员
有理想的程序员必须知道的15件事 -
liujunhui1988:
觉得很有概括力
15 个必须知道的 Java 面试问题(2年工作经验)
源:http://www.zhihu.com/question/20462696/answer/18731073?utm_campaign=rss&utm_medium=rss&utm_source=rss&utm_content=title
评:
开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。
实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。
目前客户端有:
android版: Google 身份验证器
iOS版:https://itunes.apple.com/cn/app/google-authenticator/id388497605
实现原理:
一、用户需要开启Google Authenticator服务时,
1.服务器随机生成一个类似于『DPI45HKISEXU6HG7』的密钥,并且把这个密钥保存在数据库中。
2.在页面上显示一个二维码,内容是一个URI地址(otpauth://totp/账号?secret=密钥),如『otpauth://totp/kisexu@gmail.com?secret=DPI45HCEBCJK6HG7』,下图:
3.客户端扫描二维码,把密钥『DPI45HKISEXU6HG7』保存在客户端。
二、用户需要登陆时
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.现实生活中,网银、网络游戏的实体动态口令牌其实原理也差不多,大家可以自行脑补下,谢谢。
评:
开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。
实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。
目前客户端有:
android版: Google 身份验证器
iOS版:https://itunes.apple.com/cn/app/google-authenticator/id388497605
实现原理:
一、用户需要开启Google Authenticator服务时,
1.服务器随机生成一个类似于『DPI45HKISEXU6HG7』的密钥,并且把这个密钥保存在数据库中。
2.在页面上显示一个二维码,内容是一个URI地址(otpauth://totp/账号?secret=密钥),如『otpauth://totp/kisexu@gmail.com?secret=DPI45HCEBCJK6HG7』,下图:
3.客户端扫描二维码,把密钥『DPI45HKISEXU6HG7』保存在客户端。
二、用户需要登陆时
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.现实生活中,网银、网络游戏的实体动态口令牌其实原理也差不多,大家可以自行脑补下,谢谢。
发表评论
-
Mysql经mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案
2016-07-06 17:16 2091源:http://www.jb51.net/artic ... -
Shell script: 获取第10+个参数
2015-11-04 14:33 442源:http://www.cnblogs.com/sheldo ... -
no server suitable for synchronization found
2015-10-21 16:15 980源:http://blog.sina.com.cn/s/blo ... -
nginx超时设置
2015-10-21 14:15 671源:http://www.cnblogs.com/discus ... -
ssh 免密码登录
2015-10-12 11:26 390源:http://chenlb.iteye.com/blog/ ... -
Maven Release Plugin Prepare a Release and create new branch
2015-09-17 15:22 767源:http://maven.apache.org/maven ... -
Centos初始化java环境
2015-09-12 14:31 4671.上传 jdk jdk-7u65-linux-x64.tar ... -
ssh 远程不能执行JAVA启动脚本
2015-09-08 21:17 1258源:http://java.freesion.com/arti ... -
java ImageIO处理图像的封装
2015-09-06 10:17 342源:http://blog.csdn.net/hu_sheng ... -
解决eclipse显示jar源代码中文乱码问题
2015-08-07 16:47 543源:http://wmljava.iteye.com/blog ... -
超漂亮的纯JAVA浏览器(附源码)
2015-08-06 16:42 1176源:http://blog.csdn.net/lxf9601/ ... -
https单向加密与双向加密区别
2015-05-23 11:04 2005源:http://edison0663.iteye.c ... -
quartz的任务调度,同一个任务,在相同的时间被调用了2次
2015-02-11 13:06 598源:http://www.iteye.com/topi ... -
目前常用命令
2015-02-09 20:14 579JSON格式化 http://json.parse ... -
CentOS 中yum命令运行错误解决办法
2015-02-03 14:10 642源:http://blog.sina.com.cn/s/blo ... -
[转]漫谈创业和管理-程序员5大思维障碍
2015-01-29 20:09 650源:http://javatar.iteye.com/blog ... -
win8 如何命令行设置 计划任务
2014-12-18 18:35 814源:http://zhidao.baidu.com/link? ... -
nginx 设置 expires and Cache-Control
2014-12-07 23:53 1090源:http://nginx.org/en/docs/http ... -
Nginx配置proxy_pass
2014-11-30 23:13 559源:http://dmouse.iteye.com/blog/ ... -
data:image/png;base64是什么
2014-11-29 14:38 2584源:http://copier.blog.163.com/bl ...
相关推荐
Google身份验证器 Google Authenticator.apk,用于gitlab双重身份认证
谷歌身份验证器,即Google Authenticator(Google身份验证器)v2.33 谷歌推出的一款动态口令工具,解决大家的google账户遭到恶意攻击的问题。
GoogleAuthenticator谷歌身份验证器官方最新安卓版.apk
java服务端实现谷歌动态密码验证,包含二唯码字段,阿里身份宝的下载路径为:https://gsf-fl.softonic.com/074/0c4/ea03fa20ed5eec554966a1ceed35593b87/com.google.android.apps.authenticator2.apk?...
google-authenticator, Google认证器的开源版本( Android 应用 除外) 谷歌认证 OpenSourceGoogle认证项目包括几个移动平台的一次性密码发生器的实现。 使用开放标准开发的开放标准( ) 为开放身份验证( 认捐) 服务...
GoogleAuthenticator, 使用谷歌验证程序应用并检查这里PHP脚本的代码 Google认证器 来自 http://code.google.com/p/google-authenticator/的端口你可以在这里使用谷歌验证程序应用程序来生成一次性密码/令牌,并通过...
该脚本还利用了 PHPGangsta 的 Google Authenticator Library PHPGansta Google 身份验证器库 谷歌身份验证器安卓 iOS(iPhone 和 iPad) Windows Phone 如何使用首先,检查脚本。 这就是好东西的地方。 在login....
本篇文章主要介绍了java使用google身份验证器实现动态口令验证的示例,具有一定的参考价值,有兴趣的可以了解一下
googleauth 动态密码win版 googleauthenticator windows版 winauth win10版
谷歌身份验证器( Google Authenticator)
google-authenticator-5-10.apk 谷歌身份验证器 更新版本可以扫二维码,安卓版,可以生成动态码
#Google-Authenticator Google身份验证器##用法###步骤1-注册申请$ google = new GoogleAuthenticator ();// Register applicationecho $ google -> getQRCodeUrl ( 'MyApplicationName' );// Save secret Key$ ...
此功能相当于给系统加了个令牌,只有输入对的一组数字才可以验证成功。类似于令牌一样。
将一个账号的密码分成两部分,一部分是你的固定口令,另一部分是动态口令,即是一个变化的口令,比如你在...之前我在百度以及其它大厂工作时就是使用这个在本地的PHP服务上直接运行并自动复制,实现迅速登录服务器。
谷歌身份验证器,即Google Authenticator(Google身份验证器)v2.33 谷歌推出的一款动态口令工具,解决大家的google账户遭到恶意攻击的问题。在SSH账号和密码之间再增加一个验证码,只有输入正确的验证码之后,再...
简单学习下GA的生成算法,写了个小工具;当做学习记录 可以去哈勃看看: https://habo.qq.com/file/showdetail?md5=512eea7730feda2bc412df8dcfd061ef&pk=ADcGY11uB24IPls%2FU2o%3D
Laravel开发-laravel-google-authenticator 这是一个框架无关的PHP库,用于使用Google验证器服务生成一次性密码。此库还可以用作Laravel 5应用程序的服务提供商。
谷歌验证器是谷歌公司... 不少割韭菜的项目需要使用到谷歌验证器,这个方法可以生成一个验证码(可以把验证码生成一个二维码,这样谷歌验证器就可以扫码直接绑定了),内置一个校验验证码的功能,可以匹配验证的结果。
主要介绍了Android中新引进的Google Authenticator验证系统工作原理浅析,需要的朋友可以参考下
Google Authenticator in ASP.NET (C#) DEMO 可以直接运行通过. https://blog.csdn.net/qq934021379/article/details/89177477