13

HOTPAlgorithm.java コード ( HOTPAlgorithm.java ) をコピーして、公式の RFC4226 ドキュメントの 27 ページにある公式の HOTP RFC 4226 のサンプル実装 ( RFC4226 Page 27 ) と比較してみました。HOTPAlgorithm.java と RFC4226 の実装はどちらも、同じ作成者である Loren Hart によって作成され、バージョン 1.0 に設定されています。私の比較から、両方のコードは本質的に同じです。

(HOTPAlgorithm.java スクリプトを変更せずに) 6 桁の HOTP コードのテスト ベクトルを実行しようとしたところ、RFC4226 で指定されたソース コードと HOTPAlgorithm.java が、公開された RFC4226 の結果とまったく同じ設定で異なるテスト ベクトルの結果を生成することに気付きました。 .

RFC4226 サンプル Java コードで公開されている Java コードと HOTPAlogrithm.java を RFC4226 テスト ベクトルと比較した場合、相違点はありますか?

HOTPAlgorithm.java および RFC4226 Java コードからのテスト結果 (どちらも同じ結果を生成します):

755224
030356
132975
957805
463120
994243
844697
570244
487336
025740

RFC4226 出版物 ( RFC4226 Page 32 )からのテスト ベクトル

755224
287082
359152
969429
338314
254676
287922
162583
399871
520489

公式に公開されているサンプル コードと公式に公開されている結果に違いがありますか?

4

2 に答える 2

4

Math.pow() を変更しても違いはありませんでしたが、truncationOffset パラメーター値として 0 を指定して generateOTP() を呼び出している可能性があります。これを -1 で試すと、参照テスト ベクトルが得られます。

于 2016-08-31T14:39:35.863 に答える