为什么Google Authenticator和Duo会生成不同的身份验证码?

时间:2018-09-30 04:59:38

标签: node.js authentication two-factor-authentication

我正在使用以下库来实现两因素身份验证:

https://github.com/speakeasyjs/speakeasy

该库产生以下QR码:

enter image description here

当我在Google Authenticator和Duo中扫描代码时,两个应用程序都会产生不同的令牌。

speakeasy库仅将Google Authenticator令牌识别为有效。

为什么相同的QR码在两个不同的应用程序中产生不同的令牌?

1 个答案:

答案 0 :(得分:1)

我没有研究Speakeasy及其工作方式,但查看QR码及其编码的URL可以说明几件事。 URL中的算法说它是SHA256,但是我相信Google Authenticator only supports SHA1是算法。因此,URL可能在说一件事,而应用程序在做另一件事。

奇怪的是,身份验证器正在工作,而Duo无法工作,而在这种情况下,我认为情况恰恰相反。

此外,Google Authenticator希望该机密会以base32进行编码。我没用过Duo,但这也许也引起了困难。

抱歉,这不是一个很好的答案,但是它可能会为您提供一些指导,以测试发生的事情。