Javascript:SHA512值转换为JSON对象

时间:2016-09-27 09:00:15

标签: javascript json ionic-framework

我已将变量“getShaValue”隐藏到sha512。然后使用JSON.stringify将其与许多变量(如'name','ic'结合使用。但是当我调试我的JSON对象时,SHA512的值没有显示正确的值。如果我只在将值转换为JSON之前调试该值,它会显示正确的值。

这是我的隐藏值的功能

  self.sha512 = function () {
    var value = self.generateSHAvalue();
    var getShaValue= CryptoJS.SHA512(value);
    return getShaValue;
};

我将它与许多变量

结合起来
var authToken = SHA.sha512();
var requestData = JSON.stringify({
   name: "Test", 
   authToken: authToken
})
console.log("requestData: " + JSON.stringify(requestData));

控制台的结果是

{
   "name": "Test",
   "authToken": '"$super":{"$super":{}},"words":[1157899753,2720090447,1588426441,2244605341,2288345873,3771352114,2976397435,3171064119,-130018106,2601059156,3822838925,2519334849,1988499628,2785343384,-556559616,-1270654637],"sigBytes":64'
}

但它应该是这样的:

{
   "name": "Test",
   "authToken": "21507C7061D3F45058A95751E2FB332DD68F6A2ADC2039DE4341199643E12ADEFB8DF603C3F 34E71FB447F46B82BC5DC7BD2B81B83B389D8950583BEFB424676"
}

任何人都可以帮助我。感谢。

1 个答案:

答案 0 :(得分:0)

您在json中包含了二进制摘要。首先尝试将其转换为十六进制:

self.sha512 = function () {
  var value = self.generateSHAvalue();
  var shaHex = CryptoJS.SHA512(value).toString(CryptoJS.enc.Hex);
  return shaHex ;
};