OTP的变化时间

最近在搞otp,让小伙伴们在登录个别应用时使用。可扫码添加OTP账号的手机app有谷歌的authenticator,微软的authenticator和红帽的FreeOTP。不过安卓手机可能找不到官方渠道下载这些靠谱的app,于是又手写了一个显示动态口令的网页,方便用户访问网页就可以看到自己当前的动态口令。
这里有个小坑跟大家分享一下。因为有用户的密钥,所以可以随时生成当前的动态口令,由于是30秒一变,如果不能确切知道变化的时刻,那么如果想要显示在网页上的动态口令和服务器生成的动态口令同步,误差不超过1秒的话,每秒查询一次最多可能要查29次才能确定变化时间,而这些otp的app里的显示的当前动态口令的有效时间倒计数却很准,难道是在密钥里就包含了动态口令的变化时间么?我看了下npm模块里otp的源码,发现并没有这个莫须有的变化时间信息。再打印动态口令变化时间才发现端倪,原来就是标准时间的每分钟的0秒或者30秒切换,自己看来的确是想多了。网页上的显示呈现也就很简单了。

var count;
var firstlook;
var clockid;

function redraw(){
	showstat(count);
	$("#countdown").html(30-count);		
	if ((count==0)||(firstlook)) {
		axios.get('/querytoken').then(res=> {
			$("#curtoken").html(res.data.token)
			firstlook=false;
			}).catch(err => { console.log(err); alert("OTP服务错"); });
		}
	count=(count+1) % 30;
	}
...
count=(new Date).getSeconds()%30; 
firstlook=true; redraw(); 
clockid=setInterval(redraw,1000);

相关推荐

  1. OTP变化时间

    2024-07-16 22:16:06       20 阅读
  2. OOP

    2024-07-16 22:16:06       73 阅读
  3. OTN和波分区别

    2024-07-16 22:16:06       34 阅读
  4. MySQL Binlog:解锁数据库变更时间之门

    2024-07-16 22:16:06       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 22:16:06       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 22:16:06       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 22:16:06       58 阅读
  4. Python语言-面向对象

    2024-07-16 22:16:06       69 阅读

热门阅读

  1. xxs攻击的攻击和防范

    2024-07-16 22:16:06       23 阅读
  2. Kotlin 内联

    2024-07-16 22:16:06       21 阅读
  3. 搭建远程控制(远程桌面)服务器

    2024-07-16 22:16:06       23 阅读
  4. 栈与队列的相关理论及联系

    2024-07-16 22:16:06       22 阅读
  5. ES6 Symbol (十三)

    2024-07-16 22:16:06       22 阅读
  6. 通义灵码初体验_在Visual Studio Code中编写python代码

    2024-07-16 22:16:06       19 阅读
  7. 代码指导“Kimi”比“文心一言”香

    2024-07-16 22:16:06       17 阅读
  8. Spring源码注解篇三:深入理解@Component注解

    2024-07-16 22:16:06       22 阅读
  9. git开发流程

    2024-07-16 22:16:06       18 阅读
  10. 5. 基于Embedding实现超越elasticsearch高级搜索

    2024-07-16 22:16:06       23 阅读