小台的IT备忘录  
脑子越来越不好用,只能依靠烂笔头了~

Google Authenticator是一个类似U盾的二次验证工具,Google提供了它的开源客户端(https://github.com/google/google-authenticator)里面有完整的客户端代码,

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

主要的实现原理就是使用密钥+时间戳的方式在服务器端和客户端采取相同的算法计算出一个数字用户输入这个数字和服务器对比相同就通过验证,其中最重要的就是密钥,

(如果算法相同、密钥相同,又是同一个时间(时间戳相同),那么客户端和服务器计算出的一次性密码是一样的。服务器验证时如果一样,就登录成功了。)

google并没有提供接入api文档是想由接入方根据客户端的算法自己编码实现服务端功能,这样自己的平台保存着自己的密钥,相对来说安全些,不用担心存在别人的数据库中。

有一些资料已经解释了其中的实现原理

https://www.zhihu.com/question/20462696

也有一些已经接入Google验证器的应用

http://www.appinn.com/10-two-factor-authentication/

posted on   taiyonghai  阅读(4927)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
 
点击右上角即可分享
微信分享提示