私はこのhttp://jacob.jkrall.net/totp/をvbscriptに実装しました。Google認証ツールとvbscript
同じ16進数を指定したコードでは、正しい6桁のotpが得られ、その部分が機能しています。
私はHMAC-SHA-1も検証しました。同じ名前の出力は同じ出力を与えます。http://www.freeformatter.com/hmac-generator.html#ad-output
私の時間は、私はotpauth文字列でhttp://www.qr-koder.dk/でQRコードを拡大して生成したhttp://www.currenttimestamp.com/
と同じです:秘密= $ SECRET // TOTP/$のLABELとGoogle認証アプリはコードを読み取り、出力を開始? 30秒ごとに6桁のコードが変更されます。
ただし、アプリケーションのコードは、6桁のコードと一致しません。このコードは、VBSCRIPTを生成します。
私はtrunc(time/30)+/- 7500ステップを試して、それがタイムゾーン/夏時間の問題であるかどうかを確認しましたが、無駄です。 6桁の数字を生成するためのルーチンの他の部分として
は私がこれを理解していないという結論に来ている動作するようです:
QRコード上のURLが
otpauth://totp/$LABEL?secret=$SECRET
です説明と
SECRETは今両方に知られている 16文字のbase32エンコードされた共有秘密は、ある一方でLABELは、あなたのアプリにキーを記述するために使用することができますクライアントとサーバー。
IはHMAC-SHA-1計算する際に(SECRET、時間()/ 30)
秘密はAPPおよび計算の両方に与えられた同じ文字列でなければなりませんか?
私が1234567890
の秘密を選択した場合、base32は、http://emn178.github.io/online-tools/base32_encode.htmlに従ってGEZDGNBVGY3TQOJQ
です。
私はその後
HMAC-SHA-1("1234567890", time()/30)
または
HMAC-SHA-1("GEZDGNBVGY3TQOJQ", time()/30)
を取るべきでしょうか?
私は両方を試したと思うし、どちらも動作しません。