9

私が見つけたすべての TOTP 実装 (RedHat による FreeOTP でさえも) は、生成されたシークレットに Base32 エンコード/デコードを使用しています。Base32 は約 20% 多くのスペースを使用し、その主な利点は人間が読みやすいという点にあるため、Base64 が使用されないのはなぜですか? とにかく、生成のためにユーザーに表示されません。

実装内のすべてのコメントは、実装がRFC6238 / RFC4226に従っていると述べていますが、RFC ドキュメント内で Base32 について述べられていることは何も見つかりません。

転送によるデータの安全性のために、Base32 または Base64 に変換することは明らかに理にかなっていますが、なぜ Base64 を使用しないのでしょうか?

4

2 に答える 2

1

それは単なる歴史的背景だと思います。最初の誰かが Base32 を選択しました。このツールは普及し、子孫は準拠するために同じエンコーディングを使用しています。

また、16 進数形式を使用した多くの実装も見ました。提供されている RFC6238 の例でも 16 進数が使用されています。

于 2018-05-25T12:01:22.623 に答える