0

方案一:

哈希(用户名、密码和 nowtime())

*nowtime() 定义为:

Calendar cal = Calendar.getInstance();
cal.getTime()

方案 B:

哈希(用户名、密码和 nowtime())

*程序 B 执行循环(最多 15 秒),每个 nowtime() 定义为:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, -1);

尽管两个程序的时间匹配,但由相同哈希函数产生的 OTP 是不同的。我不需要代码,请帮助我了解 2 个程序之间的同步时间。

4

1 回答 1

0

Calendar.getTime()以一毫秒的分辨率返回时间。因此,两台计算机上的毫秒值肯定会不同(或者它们只是靠运气才相同)。

0要使用您的解决方案,您必须在处理之前将毫秒设置为

cal.set(Calendar.MILLISECOND, 0);

那么你应该至少有一场比赛。

于 2013-07-18T05:56:27.600 回答