Javascript 离线移动生成6位代码用于2factor身份验证

Javascript 离线移动生成6位代码用于2factor身份验证,javascript,php,node.js,algorithm,Javascript,Php,Node.js,Algorithm,我正在尝试从离线移动应用程序生成6个唯一数字,其中包含用户信息,如id,并使用此代码验证2factor身份验证 因此,移动设备包含user\u id=5,我添加unix timestamp=1571936674并将它们连接起来,例如,它将是1571936674-5 然后,我将在Web应用程序上执行相同的算法过程,使用unix时间戳和user\u id生成相同的令牌,并忽略两个时间戳之间的时间差 问题是: 我怎么才能把那些大数字减少到只有6位数?!在脱机移动设备和服务器上进行匹配?在这种情况下,您

我正在尝试从离线移动应用程序生成6个唯一数字,其中包含用户信息,如
id
,并使用此代码验证2factor身份验证

因此,移动设备包含
user\u id=5
,我添加
unix timestamp=1571936674
并将它们连接起来,例如,它将是
1571936674-5

然后,我将在Web应用程序上执行相同的算法过程,使用
unix时间戳
user\u id
生成相同的令牌,并忽略两个时间戳之间的时间差

问题是:
我怎么才能把那些大数字减少到只有6位数?!在脱机移动设备和服务器上进行匹配?

在这种情况下,您需要生成一个长度为6的固定长度输出。您可以使用返回固定长度输出的哈希函数。例如:SHA 256

为什么不使用标准?。有几个库可供PHP和其他人为您执行此操作。@MER是的,但请记住,手机处于脱机状态,未与PC或服务器连接。根据MER的评论,可能会解决您的问题。@Ahmed,是的,此算法基于当前时间。不需要上网。这是Google Authenticator应用程序使用的,无论您是否在线,它都能工作。是的,但这将在手机上生成与PC匹配的代码,而两者都未连接且手机处于脱机状态?