会社行きたくなかったんです。

自由になりたくて会社辞めました

VB.net

VB.netでBase32をデコードするコード書きました。

投稿日:

二段階認証のコードを生成するアプリを作成するために、TOTPの仕様を確認したところ、secretがBase32でエンコードされていることがわかりました。

Base64の場合は、VB.netでクラスが用意されているのですが、Base32の場合はありません。

ということで、VB.netでBase32をデコードするコードを書いてみることにしました。
まずは、Base32のエンコードの仕組みを確認します。

スポンサーリンク

エンコードする文字列を2進数に変換。
5ビットずつ区切り、最後が5ビットに満たない場合は右に0を追加して5ビットに合わせる。
5ビットを10進数に変換する。
すると、0から31までの数値になります。
この数字は、アルファベットのA~Z、数字の2~7に対応しています。
0:A、1:B、、、25:Z、26:2、、、31:7
正確な仕様では、一旦40バイトで区切って、足りない分「=」でパディングしますが、少し単純化しています。

ということで、この逆を行えばデコードできるはずです。

2段階認証のsecretをデコードしたいだけだったので、細かい部分が省略されています。

VB.netで二段階認証のコードを生成するツールを作りました。
こちらの記事で、実際にこの関数を使っています。

-VB.net

Copyright© 自由になりたくて会社辞めました , 2019 AllRights Reserved Powered by AFFINGER4.