我在 javasript 和 PHP 中都使用了 HMAC,当我运行两个 porgams 并将两个函数的参数作为变量时,我得到了两个不同的 HMAC 值。但是,如果我将它们作为字符串文字运行,那么一切正常。我认为这与字符串变量在每种语言中的编码方式有关,但我不知道如何修复它。我正在使用的代码如下。
在下面的 php 函数中,$pwd1
从命令行检索。
$k = hash_hmac('sha1', $pwd1, $salt);
在下面的 javascript 函数中,password
是从json.parse(msg)
语句中获取的。然后我使用以下 HMAC 方法
<script type="text/javascript" src="http://crypto-js.googlecode.com/files/2.5.3-crypto-sha1-hmac.js"></script>
看起来像Crypto.HMAC(Crypto.SHA1,password,salt);
。
谢谢。