mrのなでしこ学習帳 RSSフィード

2010-06-20

HMACSHA1取得

はてなブックマーク - HMACSHA1取得 - mrのなでしこ学習帳

http://nadesiko.g.hatena.ne.jp/white-ball/20100402/1270147724

しらたまさんのHMACSHA1取得のコードが、のままコピペすると余分なスペースや改行が入ってしまうようなので、こちらにpre記法で貼っておきます。

夕べはこれで編集ミスして時を使ってしまった・・・。

!B=64
!L=20

●HMACSHA1取得(秘密鍵で内容の)
 #秘密鍵の長さの調整
 秘密鍵のバイト数
 もしそれ>Bならば
  秘密鍵からSHA1取得
  2で行揃え
  反復
   INT(「$」&対象)を秘密鍵の回数に「byte」でバイナリ設定#ハッシュ関数の出力のバイナリ変換
  秘密鍵は秘密鍵のL バイト左部分
  秘密鍵のバイト数
 もしそれ<Bならば
  「{\0}」を(B-それ)だけリフレイン
  秘密鍵は秘密鍵&それ
 
 #鍵から作る2つの文字列の準備
 鍵Iとは文字列。鍵IにBを確保
 鍵Oとは文字列。鍵OにBを確保
 文字とは整数
 B/4回
  秘密鍵の(回数-1)*4+1 を「DWORD」でバイナリ取得
  文字はそれ
  XOR(文字,$36363636)を鍵Iの(回数-1)*4+1 に「DWORD」でバイナリ設定
  XOR(文字,$5C5C5C5C)を鍵Oの(回数-1)*4+1 に「DWORD」でバイナリ設定
 
 #ハッシュ関数の適用
 経過とは文字列
 経過にLを確保
 
 (鍵I&内容)からSHA1取得
 2で行揃え
 反復
  INT(「$」&対象)を経過の回数に「byte」でバイナリ設定#ハッシュ関数の出力のバイナリ変換
 
 (鍵O&経過)からSHA1取得
 2で行揃え
 反復
  INT(「$」&対象)を経過の回数に「byte」でバイナリ設定#ハッシュ関数の出力のバイナリ変換
 
 経過を戻す

#出力確認
鍵とは文字列
#適当に鍵生成
鍵にBを確保
B 回
 回数-1 を鍵の回数に「byte」でバイナリ設定
鍵で「こんにちは」のHMACSHA1取得
表示
バイナリダンプ
表示

ShinyaShinya2010/06/20 18:14HMACSHA1取得がうまくうごかないんですよね・・・。
どうしよう。OAuthで困りぎみ