2016-09-27 172 views
-1

我已經將變量'getShaValue'隱藏到sha512。然後使用JSON.stringify將其與許多變量(如「名稱」,「ic」)結合使用。但是當我調試我的JSON對象時,SHA512的值沒有顯示正確的值。如果我只在將其轉換爲JSON之前調試該值,則會顯示正確的值。Javascript:將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

您在json中包含了二進制摘要。嘗試將其轉換爲十六進制:

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