HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0417
無名の獣HMAC-SHA256の計算方法5解決


無名の獣

リンク

2014/4/17(Thu) 21:15:23|NO.61564

PHPではよくあるhash_hmac('sha256', txid, secret)
はHSPでどうやって計算すればよいでしょうか?
sha256自体を計算する方法は心得てます。

よろしくおねがいします。



この記事に返信する


YSR

リンク

2014/4/17(Thu) 22:09:10|NO.61565

これはHSPに関する質問というより、hash_hmacの実装に関する質問に当たる気がします。
PHP4やVBAで組まれた方がいらっしゃるようですのでURLを記しておきます。
http://www.revulo.com/blog/20090811.html
http://plus-sys.jugem.jp/?eid=220



無名の獣

リンク

2014/4/19(Sat) 19:58:09|NO.61585

もちろんphpなどで関数を呼ぶことはできます。
しかしHSPだとどう実装すればよいのかわからず困っているところです。
DLLでもあればいいんですけど、探しても見つからないんですよね・・・。



qwert

リンク

2014/4/19(Sat) 20:39:18|NO.61587

> しかしHSPだとどう実装すればよいのかわからず困っているところです。
http://tools.ietf.org/html/rfc2104の2章を見ると
HMACの計算式が1行で書かれているのでそれを単純にHSPで実装するだけです。
式をどのようにHSPで表現すればよいのかわからないなら
HSPの勉強が足りないんでしょう。おそらく。



goupon

リンク

2014/4/19(Sat) 21:33:49|NO.61592

単純という人がいますが、やってみればわかるけど独特の表記方法とかあるので理解するのが難しい面もありますよ。
とりあえずやってみたサンプル書きます。
以下のサイトのステップ8と結果が一致したのであってると思います。
https://affiliate.amazon.co.jp/gp/associates/help/t126/a13?ie=UTF8&pf_rd_i=assoc_help_t126_a12&pf_rd_m=AN1VRQENFRJN5&pf_rd_p=&pf_rd_r=&pf_rd_s=center-2&pf_rd_t=501&ref_=amb_link_84046596_2
ただし最後の結果はbase64でエンコードしてますがそれはHMACの仕様ではないみたいです。
あと以下のサンプルはとりあえずやってみたもので無駄が多いです。
いろいろ最適化すればもっと簡潔にできます。
サンプルの実行にはlongintというプラグインが必要です。
http://www.vector.co.jp/soft/dl/win95/prog/se397330.html

#include "rsa.hsp" key="1234567890" lf="":wpoke lf,0,0x0a ;Cの\n相当の文字。HSPの\nと他言語の\nは違うので text="GET"+lf text+="webservices.amazon.com"+lf text+="/onca/xml"+lf text+="AWSAccessKeyId=00000000000000000000&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-06" dim ipad,16 memset ipad,0x36,64 dim opad,16 memset opad,0x5c,64 l=strlen(key) memset key,0,64-l,l InitSha256 context repeat 64 c=peek(key,cnt)^peek(opad,cnt) InputSha256 context,c,1 loop InitSha256 context2 repeat 64 c=peek(key,cnt)^peek(ipad,cnt) InputSha256 context2,c,1 loop InputSha256 context2,text,strlen(text) OutputSha256 context2,hash,0 InputSha256 context,hash,32 OutputSha256 context,hash,0 EncodeBase64 result,hash,32 mes result



無名の獣

リンク

2014/4/21(Mon) 22:48:56|NO.61620

おおお、ありがとうございます!
longintモジュールは素数暗号ソフトを作成した時にいやというほど使ったので心得ていますw
(モナコインに対応してれば送りたいくらいです!w)



ONION software Copyright 1997-2023(c) All rights reserved.