每个令牌都有不同ID,帐号先与令牌ID绑定,令牌会根据自身的特定ID与当前时间来计算出6位的随机码。服务器端程序因为 有了令牌ID,所以也可以根据这个令牌的特征和当前时间来生成同样的随机码,然后你提交令牌生成的验证码,服务器会验证与它自己生成的是否一致,一致就通过,不一致就提示错误……

转自:果壳网https://www.guokr.com/question/365877/

作者:风君

 

令牌实际相当于一个密码本,输进去AAA得到BBB,BBB是正确答案,验证通过。实际用的时候还会令牌会有一个时间有效性的问题,在不同的时间里输入AAA得到的答案是不同的,服务器端认为的正确答案是在随时间变动的,前一分钟有可能是DDD,后一分钟可能是MMM,一般在一个有效时间段(一般为一分钟)才会得到的答案BBB,

转自:知乎https://www.zhihu.com/question/20559606/answer/127047895

作者:柴柴
那这么理解的话我就又猜错一大部分了,不需要两个服务端相互核验而是终端自动计算转换,一部分对了就是特征码,那这个图应该这么画
这么来看的话的确更安全因为没有公开的口令,所有动作都在后台/事前做好,只返回正确和错误的状态。
但也不难实现,慢慢学习~

Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.