gpt4 book ai didi

java - RFC4226 HOTP Java 实现

转载 作者:搜寻专家 更新时间:2023-10-30 21:09:47 24 4
gpt4 key购买 nike

我尝试复制 HOTPAlgorithm.java 代码 ( HOTPAlgorithm.java ) 并将其与官方 RFC4226 文档第 27 页上的官方 HOTP RFC 4226 示例实现 ( RFC4226 Page 27 ) 进行比较。 HOTPAlgorithm.java 和 RFC4226 中的实现均由同一作者 Loren Hart 编写并设置为 1.0 版。从我的比较来看,这两个代码本质上是相同的。

我尝试为 6 位 HOTP 代码运行测试 vector (不修改 HOTPAlgorithm.java 脚本)并注意到 RFC4226 和 HOTPAlgorithm.java 中给出的源代码产生了与发布的 RFC4226 结果完全不同的测试 vector 结果相同的设置。

与 RFC4226 测试 vector 相比,RFC4226 示例 Java 代码和 HOTPAlogrithm.java 发布的 Java 代码是否存在差异?

来自 HOTPAlgorithm.java 和 RFC4226 Java 代码的测试结果(都产生相同的结果):

755224
030356
132975
957805
463120
994243
844697
570244
487336
025740

来自 RFC4226 出版物的测试 vector (RFC4226 Page 32)

755224
287082
359152
969429
338314
254676
287922
162583
399871
520489

我是否遗漏了什么或官方发布的示例代码与官方发布的结果之间是否存在差异?

最佳答案

改变

int otp = binary % DIGITS_POWER[codeDigits];

int otp = (int) (binary % Math.pow(10, codeDigits));

或者

int otp = binary % 1000000;

关于java - RFC4226 HOTP Java 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com