发现个好玩的东西, 谷歌验证.
谷歌验证的原理基于HMAC-Based One-Time Password
算法, 简称HOTP
.
HOTP工作原理如下:
客户端和服务端事先协商好一个秘钥K, 用于一次性密码的生成过程, 此秘钥不被任何第三方知道. 此外客户端和服务端各有一个计数器C, 并且事先将计数值同步.
进行验证时, 客户端对秘钥和计数器组合使用HMAC(Hash-based Message Authentication Code)
算法计算一次性密码. 服务端进行相同的计算, 如果匹配则验证通过.
Reference:
- https://www.zhihu.com/question/20462696
- https://blog.seetee.me/post/2011/google-two-step-verification/