javascript - 如何在 JavaScript 中将 otpauth key 转换为 otp pin?

标签 javascript encryption windows-store-apps password-protection one-time-password

我想编写一个 JavaScript 应用程序,例如 Authy 或 Google Authentificator。遗憾的是,我没有找到任何信息如何计算实际 PIN(一次性密码)的 key 以使用它进行登录。

我知道,我必须将此 key 与实际时间戳一起使用,但不知道如何组合 key 和时间戳,然后生成 Google Authentificator 和 Authy 可以生成的 6 位 OTP。

如果我在 Google 中激活两因素身份验证,我会收到一个二维码,该二维码会生成如下链接

otpauth://totp/Google%3Asome.name%40googlemail.com?secret=x6wup537ptmmohbjkczluxit4r6eppfc&issuer=Google

所以x6wup537ptmmohbjkczluxit4r6eppfc是 secret key 。我必须做什么才能从中获取 OTP,该 OTP 确实可以与 Google 帐户一起登录?

最诚挚的问候和感谢, 凯撒猕猴桃

最佳答案

我从搜索结果中得出这个问题,因为我正在寻找一个可以完成问题(来自标题)所要求的内容的库。经过更多搜索后,我发现了一个 npm 模块可以做到这一点 - https://www.npmjs.com/package/otplib 。如果您查看演示,您会发现它为您提供了一个 token 。从该模块的文档中您可以看到,为了获得 pin,您可以使用:

const token =authenticator.generate(secret);

关于javascript - 如何在 JavaScript 中将 otpauth key 转换为 otp pin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159026/

相关文章:

javascript - 缓存 JQuery UI-Tabs Ajax 加载的内容?

javascript - Array.reduce() 按对象字段分组并将所有其他字段扩展到其相应的分组对象字段

javascript - 突出显示ace中的单个字符

uwp - StoreContext 用户属性在单用户 UWP 应用程序中始终为 null

c# - 来自 SelectionChanged 事件 WinRT 的 ArgumentOutOfRangeException

javascript - js数据: What is the difference between "none" and "inject" for DS "reapAction" configuration option?

amazon-web-services - 数据如何在内部存储在 AWS DynamoDB 上?加密还是纯文本?

java - iPhone 3Des 加密匹配 Java 和 .NET key 问题,SecretKeySpec?

java - 在 .exe 中打包时出现 AES 256 加密/解密 NoSuchProviderException(使用 Advanced Installer 9.4)

c# - 在 Windows 应用商店应用程序中加密和解密本地镜像