我必须向 URL http://example.com/test发出 HTTP POST 请求,其中包含 JSON 字符串作为正文部分、标题“Content-Type:application/json”和“Authorization: Basic userid:password”。用户 ID 是 abc@example.com,密码必须是 10 位基于时间的一次性密码,符合 RFC6238 TOTP,使用 HMAC-SHA-512 作为哈希函数。
令牌共享密钥应为“abc@example.comTEXT5”,不带双引号。
所以,为了实现上面我修改了 RFC6238 RC6238 TOTP Algo的 Java 代码
为了获得 TOTP,我使用在线转换器工具将共享密钥“abc@example.comTEXT5”转换为 HMAC-SHA512 ,以及一些生成相同的 128 个字符长度的十六进制代码的代码
发出请求总是响应“TOTP 错误”。
我注意到我生成了错误的密钥,所以 TOTP 错误。那么,如何生成符合 HMAC-SHA512 和 RFC6238 算法的 Java 代码的正确密钥?
算法中有默认密钥作为种子:
String seed64 = "3132333435363738393031323334353637383930" +
"3132333435363738393031323334353637383930" +
"3132333435363738393031323334353637383930" +
"31323334";
我怎样才能为我的共享秘密“abc@example.comTEXT5”获得这样的种子64?我修改后的代码是10 位 TOTP
我感谢大家的帮助!