【发布时间】:2018-11-17 03:04:56
【问题描述】:
我正在用 php 创建一个简单的 api。
$signature_string = "MARCIGETapi/v1/test/636779232000000000FIXXISOFTRGllcyBpc3QgZWluIFRlc3Q="
$new_sig = hash_hmac("sha256", $signature_string, $api_key, false);
echo $new_sig;
24f305d19cad2e848b3407f64bc21ada0ff1978a2487a23f26aa35f3a1c8204a
现在解释一下:
$new_sig = hash_hmac("sha256", "MARCIGETapi/v1/test/636779232000000000FIXXISOFTRGllcyBpc3QgZWluIFRlc3Q=" , $api_key, false);
echo $new_sig;
c1d2347e60a648838fd8a98a41174fc9a4b18371e18261931f3337951b8a6cdf
第二个是我能够在 c# 客户端上生成的预期。
【问题讨论】:
-
请提供此问题的 MCVE。它不应该仅仅因为值首先保存在变量中而创建不同的散列。也许
$signature_string变量或$api_key变量正在改变。 -
我很确定这可以使用任何字符串作为 api_key 进行复制。我 100% 确定数据是相同的(两次都使用 api_key)。 2 个 sn-ps 紧随其后,并且 api_key 永远不会改变。
-
仅使用这些代码块是无法复制的。无论消息是直接在
hash_hmac()调用中还是通过变量写入,它们都将返回相同的哈希值。请提供 MCVE。 -
WFM:3v4l.org/okmLH
-
我也遇到了同样的问题 :( 你找到什么解决办法了吗?我遇到的问题很奇怪