2016-06-14 34 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