100次浏览 发布时间:2025-01-20 05:51:33 编辑: 云看猫

上图是中国银行的动态口令牌。中行动态口令每60秒随机更新一次,密码显示为6位数字。大家有没有想过,这种设备是不具备联网功能的,那这个随着时间一直改变的动态口令密码,当你在手机app中输入后,银行又是怎么知道你这个动态口令是正确的呢?
我们先看看我们为什么需要动态口令,这就得从双因素验证说起了。我们一般可以通过三种不同类型的证据来证明一个人的身份:
双因素认证,就是同时认证以上的两种因素,来确定一个人的身份。举个例子,你用手机银行给他人的银行卡转账,那么你需要输入你的银行密码和短信验证码;你用到ATM机去转账,你需要你的银行卡和密码。那有人会说,我支付宝和微信转账就只用支付密码就能转账,其实背后并不是这么简单,一般这些金融公司会根据你的操作类型和金额大小,用背后强大的风控系统来判断你需要验证哪些因素,可感知的,有支付密码,验证码,人脸识别,手机的指纹识别,iPhone的face id等。感知不到的还有软动态口令,类似上图的应该的物理动态口令,你的app会像物理动态口令一样,每隔30秒或60秒,就生成一个动态口令码,这个动态口令是根据你的app上的动态口令密钥生成的,这个密钥会在你登录成功后下发到你的app中,当然登录时候经过了双因素验证确保是你本人在使用手机。
下图是第三方的软动态口令Google Authenticator OTP,这个口令一样是根据时间在改变的,OTP就是一次性密码(One Time Password)的缩写。这种软动态口令在国外用的会比较多。

有了以上的铺垫,我们回到我们一开始的问题,动态口令是怎么离线生成的呢?
首先,服务器会生成一个密钥,这个密钥会通过安全的方式保存到用户的手机,可以是用户扫码绑定,也可以是验证用户身份后加密下发到用户的手机中,这时候,用户和服务器就有了同一把密钥。这个密钥是和手机绑定的,如果用户更换手机,那么旧密钥就会失效。同样的,上面提到的中国银行的动态口令设备就是在设备上保存着和服务器中一样的密钥,然后这个动态口令设备会在银行网点交到用户的手中。
接着,在需要用到动态口令的时候,手机端或者动态口令设备,会使用密钥和当前时间计算出来一个哈希值,再通过这个哈希值算出个6位数字的密码,有效时间是30秒或者60秒,用户在有效时间内将这个哈希值提交给服务器,然后服务器也会用同样的密钥和当前时间计算出来一个哈希值,比计算出6位数字的密码,比对两个6位密码,如果相同则说明动态口令正确。
那这个有效时间是怎么实现的呢,其实也很简单,我简单举个例子大家就明白了,以有效时间为60秒为例,比如说现在是1900年1月1日 0时0分0秒,那么我们就让0时0分0秒到0时1分0秒的时间内生成的时间值为0,0时1分0秒到0时2分0秒的时间内生成的时间值为1,0时2分0秒到0时3分0秒的时间内生成的时间值为2,依次类推。有技术背景的朋友相信看到下面计算也能很快明白,时间值 = Date.now() / 1000 / 60 。
上面的这个算法,其实有个官方的名字,叫TOTP(Time-Based One Time Password)。另外还有一个算法叫HOTP(HMAC-Based One Time Password),是通过某个事件的特定次序及相同密钥作为输入来进行哈希计算得到密钥,每次验证后,事件的计数器都会加一,由于篇幅关系这里就不展开讲了,有兴趣的可以自己去了解一下。
对男生表白的情话(这三句“肉麻情话”,多说给男人听) 【百科知识】 2025-08-13 06:00
男朋友不爱你的表现有哪些(男朋友三个行为,是不爱的表现) 【百科知识】 2025-08-12 12:24
喜欢喝酒的男人值得托付吗(嗜酒如命的男人能嫁吗) 【百科知识】 2025-08-12 02:22
前任有了新欢该怎么挽回? 【百科知识】 2025-08-11 12:25
做好这些能让男友主动找你和好吗(做到这三点,男人主动找你复合) 【百科知识】 2025-08-11 10:02
怎样挽回天蝎座男生的心(天蝎提出分手后最好挽留的三大法) 【百科知识】 2025-08-10 08:58
男女朋友提分手该怎么做?(情侣说分手我们应该怎么办呢?) 【百科知识】 2025-08-10 05:03
丈夫不愿意跟你一起分担家务怎么办(女人可以用四个方法) 【百科知识】 2025-08-09 20:33
分手后还能做朋友吗(分手后到底还能不能做朋友) 【百科知识】 2025-08-09 13:38
老公精神出轨如何留住他的心(教你一招必杀技) 【百科知识】 2025-07-26 17:28
什么是征信黑名单(征信黑了怎么补救) 【百科知识】 2025-06-07 01:42
什么是等本等息还款法(等本等息和先息后本) 【百科知识】 2025-06-06 16:31
基金的净值是什么意思(基金交易按哪一天的净值成交?什么是基金累计净值,什么是基金转换?) 【百科知识】 2025-06-06 15:36
为什么熊童子会掉叶子(被拉下神坛的多肉熊童子,3个原因一针见血) 【百科知识】 2025-05-09 13:10
柜子为什么会前倾(多层抽屉柜真的能倾倒!) 【百科知识】 2025-05-09 09:06
墙纸为什么含有甲醛(乳胶漆和墙纸哪个甲醛少一点?) 【百科知识】 2025-05-08 07:22
冬天玻璃为什么有水(冬季为何家里的门窗在“流汗”?) 【百科知识】 2025-05-08 05:04
枕头为什么要经常洗(长期不洗的枕头有多脏 枕头多久清洗一次) 【百科知识】 2025-05-07 05:38
水电改造为什么很贵(水电工程最常见猫腻盘点!) 【百科知识】 2025-05-07 02:42
什么电动车适合跑外卖(适合跑外卖的三款电动车) 【百科知识】 2025-05-06 05:31
小米辣椒酱的做法长期保存(掌握方法,保存3月不坏) 【百科知识】 2025-02-03 00:56
c类基金 什么意思(基金名称后面的A和C代表什么?) 【百科知识】 2025-03-20 16:02
葱花饼怎么做松软不硬(教你做凉了不硬的葱花饼) 【百科知识】 2025-02-02 02:36
干煸土豆丝的做法是什么(不要直接下锅炒,多加一步,酥香味美) 【百科知识】 2025-02-02 04:03
蘑菇汤怎么做好吃简单又营养(10款美味蘑菇汤的做法大全) 【百科知识】 2025-02-02 05:31
酱爆肉丝的正确做法(干饭达人也要赞一句的酱爆肉丝) 【百科知识】 2025-02-03 01:27
清炒茄子家常做法(做炒茄子,直接下锅就“废”了) 【百科知识】 2025-02-03 02:23
芒果酒制作方法(家常芒果酒的三种制作方法) 【百科知识】 2025-02-03 04:56
红烧鲫鱼最正宗做法(红烧鲫鱼这种做法,美味又营养 ) 【百科知识】 2025-02-03 06:01
巧克力面包的做法教程(大厨教我的巧克力脆脆珠面包的做法) 【百科知识】 2025-02-04 00:26
丝瓜怎么炒不会变黑(大厨教你这3个窍门,从此炒丝瓜翠绿鲜嫩惹人馋) 【百科知识】 2025-02-04 01:35
糯米脆皮炸大肠的做法(独家揭秘糯米酥肥肠的做法) 【百科知识】 2025-02-04 02:58
蒜香蚕豆教程(正是吃嫩蚕豆的好时候!) 【百科知识】 2025-02-04 03:54
香酥脆枣的制作方法是什么(自己动手做,方法简单,好吃的很。) 【百科知识】 2025-02-04 05:38
鸡头米怎么吃好吃又简单(用鸡头米做成的各种美食) 【百科知识】 2025-02-05 00:39
电饭锅做鸡腿懒人做法窍门(超好吃的懒人鸡腿) 【百科知识】 2025-02-05 02:36
皮蛋豆腐怎么做家常(皮蛋豆腐的简单做法 ) 【百科知识】 2025-02-05 04:11
四红补血粥做法大全(四红粥的正确做法) 【百科知识】 2025-02-05 04:32
南瓜蛋糕的做法(自制南瓜小蛋糕,绵软香甜) 【百科知识】 2025-02-05 06:33
电饼铛做发面葱油饼的做法(发面香酥葱油饼好吃有诀窍) 【百科知识】 2025-02-06 00:48