博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
仿新浪微盾客户端项目简介三
阅读量:6232 次
发布时间:2019-06-22

本文共 794 字,大约阅读时间需要 2 分钟。

上节我们说到,关于opt算法的说明,也说到这个项目是使用TOTP(基于时间)方法。  

这节讲的主要把它怎么整合项目中。整合项目中,此算法需要注意这么几点。

1. 与服务器端统一的准确时间
由于是使用totp算法,客户端与服务器端的算法是必须要保存一致的。

对时接口,获取服务器端准确时间,返回{“svr_time”:1319512158},以秒为单位的时间戳。时间偏移量 = 本地时间 – 服务器端时间, 将时间偏移量保存在地SharePreference中,供计算动态密码时读取服务器端时间 = 本地时间 - 时间偏移量使用时间偏移量的好处是:只需要从服务器获取一次时间,以后都可以离线使用微盾。

2. 静态密钥。
加密后静态密钥保存在本地,加密算法为DES,一种对称加密算法,支持加密解密密钥 = 固定字符串 + 设备IMEI号码
这个解密的密钥有什么作用了,是用于微盾两边安全性的提升了。这就引出一个话题,密钥的作用。公钥加密,保存在客户端 很多个,用户知道。私钥解密,保存在服务器 只有一个,只有服务器知道。这种不对称加密的方式,大大的提升了破解难度。至于大家认为,设备的IMEI号是不是多此一举,在以后我会专门用一篇文章论述,这里,就不做过多的赘述了。
有了这两点的分析,我们有了一个完美的设计方案:
有了准确的服务器时间和静态密钥,就能计算出正确的6位动态密码
当用户输入动态密码登录时,服务器会使用同样的时间和密钥算出6位密码进行比对。
服务器做了容错处理,会计算出在某个时刻前1分钟和后一分钟的所有6位密码,只要用户输入正确了其中一个,就算通过.
至于这个方法具体代码,我准备是在Google一个开源项目Google Authenticator 修改。
下面的课程,我们将进入具体的源代码的说明。
用了3节的篇幅,说明了微盾概要设计和技术实现,不知道大家明白没,请给予反馈。

转载地址:http://ruena.baihongyu.com/

你可能感兴趣的文章
智能家庭本周锋闻:小米进军移动医疗
查看>>
检测iOS的APP 性能的一些方法
查看>>
细数各种关键绩效指标KPI
查看>>
新一代信息技术产业加速变革 大数据产业迎发展机遇
查看>>
ANTVR是否是虚拟现实的好故事?
查看>>
运营商如何创新流量经营模式?
查看>>
模糊的边界:内存和存储以全新方式融合
查看>>
为何Windows版QuickTime突然寿终正寝?
查看>>
巧用MapReduce+HDFS,海量数据去重的五大策略
查看>>
天津:智慧园区形成智能制造生态圈
查看>>
高速无线网络:现实还是科幻?
查看>>
《C语言课程设计》一2.4 表达式和基本语句
查看>>
第一次参加就甩开IBM 阿里云成为国际顶级竞技手
查看>>
搭建B2P风控体系 破题分布式光伏融资难题
查看>>
大白话解释模型产生过拟合的原因!
查看>>
感知时代 智造中国 ——首届中国智谷大会际会风云
查看>>
移动物联网的Arduino开发板:Particle推出Electron
查看>>
校企联合,走大数据职业人才培养创新之路
查看>>
德勤报告:如何利用区块链调查客户忠诚度
查看>>
储能在多能互补集成优化中的应用
查看>>