Xively设备激活码使用HMAC-SHA1算法不匹配

leo*_*eon 5 xively

我试图从产品密码和设备序列号计算激活码,我计算的激活码总是与Xively不同.

有人可以帮我指出我错在哪里吗?

来自Xievely门户网站:

Product ID: 4sA5tK9XF_3xKfOawmyO
Product Secret: be0f6928e3653cf175b7f8ebb2da50c6658b30b7
Serial Number: 123123123
Activation Code: 93d80b284a19d14e99d9abb7d637afc59d4b0f95
Run Code Online (Sandbox Code Playgroud)

我用PHP测试过:

echo hash_hmac("sha1","123123123","be0f6928e3653cf175b7f8ebb2da50c6658b30b7");
Run Code Online (Sandbox Code Playgroud)

我生成的激活码是:66b02f4c691287144c09e3b76816275742c155b5,它与Xively不同.

请帮忙,万分感谢.

use*_*240 1

如果您使用的是 PHP 5,您可以使用 hex2bin() 将秘密转换为二进制,这应该可以工作。尝试这个:

$secret_string='be0f6928e3653cf175b7f8ebb2da50c6658b30b7';
$secret=hex2bin($secret_string);
echo hash_hmac("sha1", '123123123',$secret)."\n";
Run Code Online (Sandbox Code Playgroud)

如果没有 PHP5,你可以自己定义 hex2bin。

保罗