使用反斜杠字符时,HMAC SHA256 不会生成预期的 Hash Paw 2.2.2

HMAC SHA256 does not generate the expected Hash Paw 2.2.2 when backslash character is used

我正在测试 Paw 应用程序,它很棒。开发者做的很出色,看来他真的很喜欢他的应用程序。

我发现当输入包含反斜杠字符或使用它的组合“\n”(不带引号)时,HMAC Sha256 加密函数不会 returns 预期的哈希。

示例:

输入:GET\n/test/api

键:BE8B3551-1892-4544-9FDC-EC0B2C8608F8

结果: f9VF6Sy0oq645lKRcXF3N96aPZLy8qhwrbJconOJhEI=

预期: VciY9BUCzL3KUUvFtmcRSuP2N5IkQ2gLvjjYgd3T9Uc=

我正在使用下一个 javascript 代码为我正在测试的 API 生成正确的散列,该代码基于 CryptoJS 脚本:

<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha256.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/components/enc-base64-min.js"></script>

<script>
    var message = 'GET\n/test/api';
var key = 'BE8B3551-1892-4544-9FDC-EC0B2C8608F8';
  var hash = CryptoJS.HmacSHA256(message, key);
  var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
document.write(hashInBase64);
</script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/components/enc-base64-min.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha256.js" ></script>

这里的问题是 Paw 解释您的 \n 字符串实际上是字符 \ 后跟字符 n 而不是换行符。

您可以通过按 Option/Alt + Enter 插入一个实际的换行符。 (该字段会出现视觉故障,您一次只能看到一行,但结果是正确的)