功能中的HTTP Rquest响应

时间:2016-06-14 06:09:18

标签: javascript jquery html http xmlhttprequest

我必须点击一个URL并获取其加密数据响应并使用该加密数据使用密钥解密数据。

我使用POSTMAN来获取数据响应但是当我查看它时只是一些符号而不是数据响应。所以,它是加密的。

我已经有一个将加密的响应转换回纯文本的功能但现在,我不明白如何将该数据响应转换为纯文本,因为我必须首先得到该数据响应,然后才使用该数据响应在一个decrypto函数的参数中,在键的帮助下,我可以将它改回纯文本。

我知道如何将密文更改为pln文本,但这里的情况略有不同。

但是因为我必须得到数据回复,所以我不应该发出POST请求来获取它,或者我理解它是错误的。

这是我的解密功能 -

var highScore: Int = NSUserDefaults.standardUserDefaults().integerForKey("highScore")

这时我称之为

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);
    }

我提供或指定密文字符串和密钥字符串,因为我只使用它来测试没有安全问题。它在alert-box中给出解密值。

所以,总而言之,我想知道如何获取加密数据响应并在函数中使用它,所以读取它就像纯文本一样。

编辑:

在POSTMAN的帮助下,我为Javascript Ajax调用生成了代码

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

那么,现在我如何在我的函数中调用这个响应?

1 个答案:

答案 0 :(得分: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>