0

我想在印度铁路公司的 Sharepoint 应用程序中创建 HMAC-SHA1 签名我应该如何创建以下代码不起作用,我的意思是当我将 HMAC 签名复制粘贴到 URL 时,它会给出错误,{"error":"UNAUTHORIZED ACCESS. HMAC SIGNATURE MISMATCH."}. 并且不显示json,我应该如何实现它是我的代码。

<script src="lib/jsSHA/src/sha1.js"></script>

<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha1.js"></script>

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



<script type="text/javascript" >



var message = "json539ff0f815ca697c681fe01d32ba52e31234567890";
        var secret = "<my private key>";


        var crypto = CryptoJS.HmacSHA1(message, secret).toString(CryptoJS.enc.Base64);
    //var crypto = CryptoJS.HmacSHA1(message, secret).toString();
        alert(crypto);

        var shaObj = new jsSHA(message, "ASCII");
            alert("Welcome");
        var jssha = shaObj.getHMAC(secret, "ASCII", "SHA-1", "B64");
        alert(crypto + "\n" + jssha);


</script>
4

2 回答 2

0

HMAC 是一种散列算法(它计算提供的消息的 CRC 码,但基于加密)。HMAC 计算消息的哈希值并为其使用密钥。它的目的是证明哈希只被知道密钥的人计算过,没有其他人计算过。

HMAC不匹配错误可能由多种原因引起:

  1. 您使用了错误的 HMAC 算法。在您的代码中,您使用 HMAC SHA1,但其中有很多
  2. 您使用了良好的 HMAC 算法,但使用了错误的 HMAC 参数。HMAC 算法通常有几个参数,如长度、链接模式、...
  3. 您使用了错误的消息格式。在计算 HMAC 之前,可能存在某种消息格式规则。
  4. 你用错了钥匙。
于 2014-04-07T21:21:37.083 回答
0

这是通过以下代码发生的,

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


var message = "mrjjson539ff0f815ca697c681fe01d32ba52e3";
var secret = "e439c4c1b7d7d2d52d11c0f1cb56552d";
//var crypto = CryptoJS.HmacSHA1(message, secret).toString(CryptoJS.enc.Base64);
var crypto = CryptoJS.HmacSHA1(message, secret).toString();
//var shaObj = new jsSHA(message, "ASCII");
//var jssha = shaObj.getHMAC(secret, "ASCII", "SHA-1", "B64");

alert("crypto answer is " + crypto);
于 2014-04-08T11:45:10.253 回答