用固定的种子初始化随机数发生器,之后只要是第相同次数产生的随机一定是一样的。
如果你是想做动态密码,还是用时间比较合适,先将时间进行一个运算,使其在一定范围内都是同一个值,比如,按5分钟一个周期来算,每分钟可以分成12个固定数字,再用这个来计算你的动态密码即可。一般只要是跟时间服务器同步的设备,时间偏差都很小。
如果要考虑偏差较大的情况,可以考虑扩大小段时间范围,比如10分钟,20分钟等。或者就保持5分钟,但每次验证的时候同时对上一段和下一段时间产生的密码进行验证,相当于扩大时间范围到15分钟。