問題タブ [base32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
612 参照

java - Base 32 の Java の BigInteger C#

Java の次の行を C# に変換するにはどうすればよいでしょうか。サイズが 130 ビットのランダムな BigInteger を生成し、それを base 32 (つまり、 decimal ではない) の文字列に変換してから、文字列を操作します。

どうすればC#でそれを達成できますか?

  • ランダムな 130 ビット BigInteger を生成する
  • base 32 の文字列に変換します

ランダムな BigInteger に関しては、次の関数があります。

base 32 変換に対応していないこの質問から取得: C# での Java の BigInteger と同等

ただし、その関数も正しいかどうかはわかりません。

私がこれまでに持っているC#コード、RandomIntegerは上記の関数です:

0 投票する
1 に答える
745 参照

swift - SwiftでUInt8変数からNビットを取得する方法は?

Swiftを独学でアプリにBase32デコードを実装しようとしていますが、この言語でバイトレベルを下回る方法を理解できないようです。UInt8 を 5 ビットに切り詰めて、それを Data オブジェクトに追加してから操作できると便利です。

私はPythonで書かれたこの関数を持っています:

これは、base32 でデータの 16 進表現を出力するように機能します。これをSwiftで複製したかったのですが(16進部分への変換ではありません)。しかし、私はこれまでに得ました:

これを行う簡単な方法はありますか?Google で何も見つかりません。

0 投票する
1 に答える
3351 参照

c# - 間違ったキーを生成する時間ベースの OTP 生成 C#

現在、多くの TOTP クラスを実装していますが、それらはすべて間違った出力を生成します。以下に、最も単純なものに使用したコードを投稿しました。

実装して Google Authenticator と同じように動作させたいと思います - たとえば、コードhttps://gauth.apps.gbraad.nl/#mainのようにします。

私が実現したいのは、アプリケーションのフロントエンドで、ユーザーが秘密の「BANANAKEY123」を入力し、これが「IJAU4QKOIFFUKWJRGIZQ====」の base32 文字列に変換されることです。

キーの下のコンストラクターでは、「BANANAKEY123」になります。しかし、何らかの理由で、このコードでは GAuth OTP ツールと同じ OTP キーが生成されません。

合理的な間違いは次の 2 つだけです。

が間違っているか、タイミング関数が間違っています。両方をチェックしましたが、どちらにも欠陥は見つかりませんでした。誰かが私を正しい方向に助けてくれますか?ありがとうございました!