我尝试复制 HOTPAlgorithm.java 代码(HOTPAlgorithm.java)并将其与官方 RFC4226 文档第 27 页上的官方 HOTP RFC 4226 示例实现(RFC4226 第 27 页)进行比较。HOTPAlgorithm.java 和 RFC4226 中的实现均由 Loren Hart 同一作者编写,并设置为 1.0 版。从我的比较来看,这两个代码本质上是相同的。
我尝试运行 6 位 HOTP 代码的测试向量(不修改 HOTPAlgorithm.java 脚本),并注意到 RFC4226 和 HOTPAlgorithm.java 中给出的源代码针对已发布的 RFC4226 结果产生不同的测试向量结果,设置完全相同.
与 RFC4226 测试向量相比,RFC4226 示例 Java 代码和 HOTPAlogrithm.java 发布的 Java 代码是否存在差异?
HOTPAlgorithm.java 和 RFC4226 Java 代码的测试结果(都产生相同的结果):
755224
030356
132975
957805
463120
994243
844697
570244
487336
025740
来自 RFC4226 出版物的测试向量(RFC4226 第 32 页)
755224
287082
359152
969429
338314
254676
287922
162583
399871
520489
我是否遗漏了什么,或者官方发布的示例代码和官方发布的结果之间是否存在差异?