曲名 | スコア | 記録 | 曲名 | スコア | 記録 | |||||
---|---|---|---|---|---|---|---|---|---|---|
天使の歌う小夜曲 | 66657 | (96.52%) | 普通 | 69063 | この手を伸ばして | 82788 | (98.57%) | 好調 | 83991 | |
羽根のブランケットにつつまれて | 62573 | (98.11%) | 一発 | 63776 | poetrylove | 100077 | (91.14%) | 普通 | 106195 | |
fay | 83242 | (92.59%) | 普通 | 89900 |
今日は帰りが遅かったのですが、明日も遅いことが想定されるので頑張ってコースも演奏しました。
なんかSMTP AUTHのCRAM-MD5認証を自分でやってみようと思ったら、HMAC-MD5を求める時に用いるMD5ハッシュはバイナリデータなのに対してCRAM-MD5の返答はテキスト(0-9a-f、32文字)に落としたものをbase64エンコードしたもの、という罠に引っかかりました…
結局
1. サーバから送られてきたチャレンジ文字列をbase64デコードする → A とする
2. パスワードを\0でパディングして64バイトにしたものの各バイトに0x36をXORする → IPAD とする
3. パスワードを\0でパディングして64バイトにしたものの各バイトに0x5cをXORする → OPAD とする
4. IPADとAを連結したもののMD5ハッシュを取る → B とする(Bは16バイトのバイナリ)
5. OPADとBを連結したもののMD5ハッシュを取る → C とする(Cは16バイトのバイナリ)
(2~5のAとパスワードからCを得る手続きがHMAC-MD5 パスワードが64文字以上の時はパスワードのMD5ハッシュ(16バイト)を代わりに用いるらしです)
6. Cを0-9,a-fの32文字(+NULLターミネート)の文字列として表記する → D とする
7. ユーザー名とDを半角スペース1文字で繋げてbase64エンコードする → E とする
8. Eをそのままサーバに送信
が正しい認証方法ということになります。
#DIGEST-MD5は複雑なので現在調査中(RFC2831を読むだけですが…)
コースはfay→PL→この手。fayはちょっと低め、PLは初回99997という激しい10万寸止めを喰らい(9割は行っている)、やり直したら今度はギリギリ10万突破。この手は一発ではないですが勢い余ってラスト成功の1ミスが出ました。
なんかSMTP AUTHのCRAM-MD5認証を自分でやってみようと思ったら、HMAC-MD5を求める時に用いるMD5ハッシュはバイナリデータなのに対してCRAM-MD5の返答はテキスト(0-9a-f、32文字)に落としたものをbase64エンコードしたもの、という罠に引っかかりました…
結局
1. サーバから送られてきたチャレンジ文字列をbase64デコードする → A とする
2. パスワードを\0でパディングして64バイトにしたものの各バイトに0x36をXORする → IPAD とする
3. パスワードを\0でパディングして64バイトにしたものの各バイトに0x5cをXORする → OPAD とする
4. IPADとAを連結したもののMD5ハッシュを取る → B とする(Bは16バイトのバイナリ)
5. OPADとBを連結したもののMD5ハッシュを取る → C とする(Cは16バイトのバイナリ)
(2~5のAとパスワードからCを得る手続きがHMAC-MD5 パスワードが64文字以上の時はパスワードのMD5ハッシュ(16バイト)を代わりに用いるらしです)
6. Cを0-9,a-fの32文字(+NULLターミネート)の文字列として表記する → D とする
7. ユーザー名とDを半角スペース1文字で繋げてbase64エンコードする → E とする
8. Eをそのままサーバに送信
が正しい認証方法ということになります。
#DIGEST-MD5は複雑なので現在調査中(RFC2831を読むだけですが…)
コースはfay→PL→この手。fayはちょっと低め、PLは初回99997という激しい10万寸止めを喰らい(9割は行っている)、やり直したら今度はギリギリ10万突破。この手は一発ではないですが勢い余ってラスト成功の1ミスが出ました。
この記事へのトラックバックURL: https://www.asmusic.jp/ASHARD/score/tb.cgi/yu-oishi/20081022手動トラックバック