我已将变量“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"
}
任何人都可以帮助我。感谢。
答案 0 :(得分:0)
您在json中包含了二进制摘要。首先尝试将其转换为十六进制:
self.sha512 = function () {
var value = self.generateSHAvalue();
var shaHex = CryptoJS.SHA512(value).toString(CryptoJS.enc.Hex);
return shaHex ;
};