【发布时间】:2016-10-14 17:19:43
【问题描述】:
我必须点击一个 URL 并取回其加密数据响应,并使用该加密数据通过密钥解密数据。
我使用 POSTMAN 来获取数据响应,但当我查看它时,它只是一些符号,而不是像数据响应那样的任何东西。所以,它是加密的。
我已经有一个将加密响应转换回纯文本的功能,但现在,我不明白如何将该数据响应转换为纯文本,因为我必须首先获取该数据响应,然后只使用该数据响应在一个解密函数的参数中,在密钥的帮助下,我可以把它改回纯文本。
我知道如何将密文更改为 pln 文本,但这里的情况有点不同。
但是由于我必须取回数据响应,所以我不应该发出 POST 请求来获取它,或者我理解错了。
这是我的解密函数-
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>
我提供或指定密文字符串和密钥字符串,因为我仅将其用于测试没有安全问题。它在警报框中给出解密的值。
所以,总而言之,我想知道如何获得加密的数据响应并在函数中使用它,所以像纯文本一样阅读它。
编辑:
在 POSTMAN 的帮助下,我为 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);
});
那么,现在如何在我的函数中调用此响应??
【问题讨论】:
-
你会为此创建一个 jsfiddle 吗?
-
这只是将加密响应转换回纯文本jsfiddle.net/yktup39e
-
您不清楚是发出
GET还是POST请求?使用与 POSTMAN 相同的请求。 POSTMAN也可以为你生成代码,在菜单中选择javascript ajax -
@shv22 :乍一看,解密代码似乎很好,如果您在客户端加密和解密消息,则不发送请求,它工作正常吗?
-
是的,我可以加密和解密消息,但主要是我必须测试数据响应
标签: javascript jquery html http xmlhttprequest