2016-06-14 24 views
0

我必須找到一個URL並獲取其加密數據響應,並使用該加密數據使用密鑰解密數據bu。HTTP Rquest函數中的響應

我使用POSTMAN來獲取數據響應,但是當我查看它時只是一些符號而不是數據響應。所以它被加密了。

我已經有一個函數將加密的響應轉換回純文本,但現在我不理解如何將該數據響應轉換爲純文本,因爲我必須先獲取該數據響應,然後才使用該數據響應在一個解密函數的參數中,並且藉助於密鑰我可以將其改回爲純文本。

我知道如何將密碼文本更改爲pln文本,但這裏的內容稍有不同。

但是,因爲我必須得到數據響應回來,我不應該做一個POST請求得到它,或者我理解錯誤。

這是我decrypto功能 -

function decryptByDES(cipherTextString, keyString) { 
     var keyHex = CryptoJS.enc.Utf8.parse(keyString); 

     var decrypted = CryptoJS.DES.decrypt({ 
      ciphertext: CryptoJS.enc.Base64.parse(cipherTextString) 
     }, keyHex, { 
      mode: CryptoJS.mode.ECB, 
      padding: CryptoJS.pad.Pkcs7 
     }); 

     alert(decrypted); 

     return decrypted.toString(CryptoJS.enc.Utf8); 
    } 

這裏時,我稱之爲

<button onclick="decryptByDES('aHJHDJSHJhjsak=', 'ALSOWURNsa');">View</button> 

我只測試沒有提供或指定的密文字符串和密鑰字符串,因爲我用它安全問題。它在警報框中給出解密值。

因此,在所有我想知道如何獲得加密的數據響應,並在函數中使用,所以閱讀它像一個純文本。

編輯:

有了郵遞員我生成的代碼爲Javascript Ajax的幫助下撥打

var settings = { 
    "async": true, 
    "crossDomain": true, 
    "url": "http://192.168.168.76:8080/HTMLPortingNewService/GetData?ChartName=widget3LineChart&lob=M&carrier=0&enrollmenttype=0&state=0&agent=0&fromdate=04%2F03%2F2015&todate=05%2F03%2F2015&requestID=499F6BF5E4610454A887AB37AF0814E8", 
    "method": "POST", 
    "headers": { 
    "cache-control": "no-cache", 
    "postman-token": "ac20a050-a8c8-6d58-4350-66141d519394", 
    "content-type": "application/x-www-form-urlencoded" 
    }, 
    "data": { 
    "username": "aHRtbHVzZXIx", 
    "password": "SHRtbDIwMTY=" 
    } 
} 

$.ajax(settings).done(function (response) { 
    console.log(response); 
}); 

所以,現在我怎麼能叫我這個函數響應?

+1

你會爲此創建的jsfiddle? –

+0

這只是將加密的響應轉換回純文本https://jsfiddle.net/yktup39e/ – shv22

+0

您不清楚是否發出GET或POST請求?使用與POSTMAN相同的請求。 POSTMAN也可以爲你生成代碼,在菜單 – avck

回答

0

你必須在ajax完成後調用decryptByDES

function callServer(){ 
     var settings = { 
      "async": true, 
      "crossDomain": true, 
      "url": "http://192.168.168.76:8080/HTMLPortingNewService/GetData?ChartName=widget3LineChart&lob=M&carrier=0&enrollmenttype=0&state=0&agent=0&fromdate=04%2F03%2F2015&todate=05%2F03%2F2015&requestID=499F6BF5E4610454A887AB37AF0814E8", 
      "method": "POST", 
      "headers": { 
      "cache-control": "no-cache", 
      "postman-token": "ac20a050-a8c8-6d58-4350-66141d519394", 
      "content-type": "application/x-www-form-urlencoded" 
      }, 
      "data": { 
      "username": "aHRtbHVzZXIx", 
      "password": "SHRtbDIwMTY=" 
      } 
     } 

     $.ajax(settings).done(function (response) { 
      console.log(response); 
      decrypted = decryptByDES(response, keyString); 
      console.log(decrypted); 
     }); 
    } 

而在你的HTML調用這個函數:

<button onclick="callServer();">View</button> 
+0

調用您的解密函數,這裏我將在函數中包含此整個var設置= {async「:true, 」crossDomain「:true,並在控制檯日誌後添加decrypted = decryptByDES ...是否正確? – shv22

+0

Yeap!它會工作。 – Ygalbel

+0

我試過它不工作......實際上,點擊它後沒有顯示任何東西...... – shv22