我想在印度铁路公司的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>
答案 0 :(得分:0)
HMAC是一种哈希算法(它为提供的消息计算CRC代码,但在加密的基础上)。 HMAC计算消息的哈希值并使用密钥。它的目的是证明哈希只由知道密钥的人和其他任何人计算。
HMAC不匹配错误可能由多种原因引起:
答案 1 :(得分: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);