coldfusion计算getHTTPRequestData的HMAC256

 nanakuailed 发布于 2023-01-31 16:10

我现在正在使用Shopify并使用他们的webhook通知,这样我就可以将东西保存到我们的数据库中.

在他们的webhook标题中,他们提供了一个标题: X-Shopify-Hmac-Sha256

这是:

每个Webhook请求都包含一个X-Shopify-Hmac-SHA256标头,该标头是使用应用程序的共享密钥(看起来像:'267bb1719a8e6ff75c4f2d709be0ca11')以及请求中发送的数据生成的.

这非常棒; 但是,我真的很难计算出它的价值X-Shopify-Hmac-Sha256.

我有一个.cfmwebhook点击的页面,我通过getHTTPRequestData这样的函数:


variables.stArgs                        = {};
variables.stArgs.stWebHookData          = getHTTPRequestData();
application.stObj.stShopify.oShopifyWebHookBusiness.receiveWebHook(argumentCollection=variables.stArgs);

然后我从StackOverflow和Ben Nadel偷了一些代码,但似乎最终都没有给我我想要的价值.目前我正在使用Ben Nadels代码:

local.data = arguments.stWebHookData.toString();
local.macClass = createObject( "java", "javax.crypto.Mac" );
local.secretkeySpec = createObject( "java", "javax.crypto.spec.SecretKeySpec" ).init(toBinary(toBase64(arguments.key)),'HmacSHA256');
local.mac = local.macClass.getInstance('HmacSHA256');
local.mac.init(local.secretkeySpec );

local.hashedBytes = local.mac.doFinal(toBinary(toBase64(local.data)));
return lcase( binaryEncode( local.hashedBytes, "base64" ) );

(arguments.key是共同的秘密)

在某个地方,我出错了.我是否完全误解了我的意图.这在PHP中看起来很简单.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有