我以前从未了解过javascript和网络安全,但最近我接受了一些编程挑战,但我必须通过http post请求发送我的项目链接,我必须计算密码,身份验证使用带有hmac sha 512的TOTP作为散列函数使用给定的密钥,在过去的几天里,我试图了解它的全部内容,例如 totp hotp hmac 等,我知道我必须根据算法转换密钥,是吗?但是算法对我来说很新,我很困惑我应该怎么做才能生成密码,任何人都可以帮助我吗?或者至少向我解释我该怎么做?
如何使用 hmac sha 512 作为散列函数获取 TOTP 密码?
信息安全
验证
javascript
顶部
2021-08-23 00:01:25
1个回答
有一个很好的 RFC 描述了 TOTP:RFC 6238,其中还提到了 SHA-512 的使用。我在 Javascript 中实现 OTP 令牌时这样做了。但即使是 RFC 也有 Java 代码示例(与 freeOTP 相同)。
该算法对于所有哈希值基本相同。基本思想是花费时间(默认下舍入到 30 秒边界)并生成此值的 HOTP(而不是 HOTP 的计数器)。
稍后的 HOTP 基本上是 HMAC,其秘密编码为十六进制,并且计数器(从上面 - TOTP 的时间)填充到特定数量的数字。从生成的哈希中,您只需要根据 RFC 获取特定部分。
为了玩耍,有几个Web 应用程序/jsfiddle可以动态生成 TOTP,但它们肯定不适合实际使用。