我需要我的 Azure 逻辑应用程序使用包含密钥的 HMAC SHA1 加密值。这是必要的,因为我需要将结果值传回数据工厂以发送到 API。我可以使用 JavaScript 在 Postman 中成功运行它,但现在我不得不在逻辑应用程序中运行它。
这是我要实现的逻辑:
AccessKey + : + ( base64( SHA1(date: requestId : uri : application key, secretkey)))
有人可以帮忙吗?
我的基础架构团队拒绝建立基础架构来编写 Azure 函数。
我尝试使用这种方法在循环中的 SQL 中手动构建它:
base64ToString(concat('SHA1-', base64ToString(concat('HMAC-', base64ToString('this is the secret key'), ':','Thu, 20 Apr 2023 02:37:33 UTC:RandomHexcodeGoesHere:/api/training/campaign/get-everything:AccesskeyGoesHere'))
这个脚本重复了 3 次,将 concat 值添加到上一次运行的输出中,然后重新运行:
`DECLARE @input varchar(100)
DECLARE @encoded varchar(100)
SET @input = 'secret key:value that needs to be converted'
SET @encoded = (SELECT CAST(N'' AS XML).value('xs:base64Binary(xs:hexBinary(sql:column("bin")))', 'VARCHAR(MAX)')
FROM (SELECT CAST(@input AS VARBINARY(MAX)) AS bin) AS bin_sql_server_temp)
SELECT @encoded`
但这也没有正确解决。理想情况下,我会在 SQL 中运行我需要的一切,这样就可以消除逻辑应用程序的开销,否则我将能够使用逻辑应用程序中的预构建模块自动执行此操作,但 Hashify 似乎没有使用秘钥。
有人有什么建议吗?或者解决这个问题的方法。我很难过。