计划A:
哈希(用户名,密码和nowtime())
* nowtime()定义为:
Calendar cal = Calendar.getInstance();
cal.getTime()
计划B:
哈希(用户名,密码和nowtime())
*程序B执行循环(最多15秒),每个nowtime()定义为:
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, -1);
虽然来自两个程序匹配的时间,但是从相同的散列函数生成的OTP是不同的。我不需要代码,请帮我理解2个程序之间的同步时间。
答案 0 :(得分:0)
Calendar.getTime()
以1毫秒的分辨率返回时间。因此,两台计算机上的毫秒值肯定会有所不同(或者只是纯粹的运气,它们只是相同的。)
要使用您的解决方案,您必须在处理之前将毫秒设置为0
cal.set(Calendar.MILLISECOND, 0);
然后你应该至少有一场比赛。