実現したいこと
NiceHashという暗号資産(仮想通貨)の売買のNiceHashAPIとGoogleAppScriptを使って売買をしようと思い、HMACの暗号値?を生成するところでつまずいています。
NiceHashAPIの例を見てみると
Input for signing:
4ebd366d-76f4-4400-a3b6-e51515d054d6 ⊠ 1543597115712 ⊠ 9675d0f8-1325-484b-9594-c9d6d3268890 ⊠ ⊠ da41b3bc-3d0b-4226-b7ea-aee73f94a518 ⊠ ⊠ GET ⊠ /main/api/v2/hashpower/orderBook ⊠ algorithm=X16R&page=0&size=100
Signature is generated via
** HMAC-SHA256 (input, API_SECRET)**: 21e6a16f6eb34ac476d59f969f548b47fffe3fea318d9c99e77fc710d2fed798
となっているので試しに自分なりにGASで実装してみました。
GAS
1 2var input="4ebd366d-76f4-4400-a3b6-e51515d054d6"+null+"1543597115712"+null+"9675d0f8-1325-484b-9594-c9d6d3268890"+null+null+"da41b3bc-3d0b-4226-b7ea-aee73f94a518"+null+null+"GET"+null+null+"/main/api/v2/hashpower/orderBook algorithm=X16R&page=0&size=100"; 3var Secret="fd8a1652-728b-42fe-82b8-f623e56da8850750f5bf-ce66-4ca7-8b84-93651abc723b"; 4//参考1 5var hmac = Utilities.computeHmacSha256Signature(input,secret); 6 7//参考2 8 var result = hmac.reduce(function (str, chr) { 9 chr = (chr < 0 ? chr + 256 : chr).toString(16); 10 return str + (chr.length == 1 ? '0' : '') + chr; 11 }, ''); 12 13console.log(hmac);//ログ:d8242b7ab558d80c873d051a6b12069ce24e1c0a16f629565b40cd23e9105f30
ログ結果は
//ログ:d8242b7ab558d80c873d051a6b12069ce24e1c0a16f629565b40cd23e9105f30
になり、例に出ていた
HMAC-SHA256 (input, API_SECRET)**: 21e6a16f6eb34ac476d59f969f548b47fffe3fea318d9c99e77fc710d2fed798
とは異なる結果になってしまいました。
やってみたこと
・inputの値のnullの部分を\nや空白にしてみたりしましたが適切な値になりませんでした。
そもそも私はHMAC認証を理解できていない部分もあるので全くの見当違いなことをやっていたらすみません。
〇〇ってググれなどどんなに些細なことでも助けになるので回答お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/30 10:31