VB.netで二段階認証のコードを生成するツールを作りました。自由になりたくて会社辞めましたホーム会社行きたくなかったんです。プログラミングVB.netで二段階認証のコードを生成するツールを作りました。2019年4月3日2段階認証のアプリが入っているスマホが壊れたらどうなる?という記事を書いた時に、アマゾンなどの二段階認証に設定をやり直したのですが、その後、一時期、毎回コード入力画面が出るようになってしまいました。Chromeで2段階認証のコード入力が毎回出てしまう場合の対処法で、Chromeの問題は解消しました。Explorerを使っています。Browserコントロールを使用して、アマゾンのセラーセントラルに自動ログインするプログラムが、毎回、コード入力を求められるようになってしまいました。そのため、自動ログインツールが自動的にコードを計算してサインインできるようにしたいと考えました。Password」の頭文字をとって「TOTP方式」という仕組みでコードの生成を行っているようです。時刻とキーから計算した数字を使っているだけらしいのです。AWSで二段階認証を設定した時に生成されるQRコードを以下のフォーマットになっています。otpauth://totp/Amazon%20Web%20Services:[ユーザー情報]?secret=[キー]&issuer=Amazon%20Web%20Services[キー]と現在の時刻から計算した結果が、Authenticatorアプリと一致すれば良いということがわかります。TOTPの計算方法まずは、現在の時刻をUnixTimeに変換します。UnixTimeとは、1970年1月1日からの経過秒数で表される日付の形式です。UnixTimeは、毎秒変わってしまいます。そのため、UnixTimeをTimeStepで割った値を求めます。TimeStepは通常30です。30秒間は同じコードが有効だということです。UnixTimeをTimeStepで割った値をタイムコードと呼んだりするようです。secretはBase32でエンコーディングされています。以下、VB.netのコードです。「Base32Decode」という関数は別記事(VB.netでBase32をデコードするコード書きました。)で作ったものを使っています。'小数点以下を切り捨てています。'btCounterを8バイトにしたいので、この値はLongにしておきます。'iCounterをバイト配列に変換します。'ビッグエンディアンに変換しています。'2段階認証のsecretをバイト配列に変換します。'SHA1のハッシュ値を計算しています。'コードを計算しています。'右から6桁取得しています。'これが取得したかったコードです。0)).TotalSeconds'UnixTimeをTimeStepで割った値'小数点以下を切り捨てています。'btCounterを8バイトにしたいので、この値はLongにしておきます。Byte()'iCounterをバイト配列に変換します。BitConverter.GetBytes(lCounter)'BitConverterはリトルエンディアンを返すので、'ビッグエンディアンに変換しています。btCounter.Reverse().ToArray()'2段階認証のsecretをバイト配列に変換します。Base32Decode([2段階認証のsecret])'SHA1のハッシュ値を計算しています。hmac.ComputeHash(btCounter)'コードを計算しています。&HFF'右から6桁取得しています。)'これが取得したかったコードです。Authenticatorアプリと同じ数字がでるようになりました。Browserコントロールで毎回2段階認証のコードを求められる現象が改善されてしまいました。Premiumに変更しました。...TeamViewerIDをVB.netで確認する方法パソコンを遠隔操作できるソフトでTeamViewer(チームビューアー)というものがあります。顧客の遠隔サポートで使っている企業もあると思います。...VB.netでCSVファイルのダブルウォーテーションの中のカンマを取り除く方法カンマ区切りのCSVファイルの場合、文字列をダブルクォーテーションで囲んである場合があります。VB.netにはCSVファイルを解読する機能がないようです。こんな感じのファイルがあると困ります。MWSの「ListFinancialEvents」のパラメータが税抜きに変更されました。MWSのファイナンスAPIで仕様変更があったようです。...Yahoo!APIのリフレッシュトークンによるアクセストークン更新の流れを考えてみた。Yahoo!APIのリフレッシュトークンによるアクセストークン更新の流れについて考えてみました。素人プログラマなので、意味不明な言葉ばかりで苦労しています。...PREVVB.netでBase32をデコードするコード書きました。NEXT「WebLightRXP」発売。自宅の一階に和式トイレがあります。その和式トイレは、ほとんど使っていないのに臭くなることがあります。二階には洋式トイレがあるのですが、そちらはそういうことはありません。...2020/02/10ジプトーン天井の塗装。穴埋めが簡単に出来る方法ジプトーン天井にペンキを塗りました。天井が高い部屋だったので、こちらの2メートルまで延長できる継ぎ手を使って塗りました。元キッチンだった部屋の天井の石膏ボードが汚れています。凹凸のない石膏ボードです。蛍光灯を撤去して引っ掛けシーリングに変更してあるので、蛍光灯の跡があります。