2016-06-14 7 views
0

私はURLをヒットし、その暗号化されたデータレスポンスを返し、その暗号化されたデータを使用してキーを使ってデータbuを復号化する必要があります。関数内のHTTPリクエスト応答

私はPOSTMANを使用してデータ応答を戻しましたが、私が調べたところでは、シンボルだけでデータ応答のようなものではありませんでした。したがって、暗号化されています。

暗号化されたレスポンスをプレーンテキストに変換する機能は既にありますが、そのデータレスポンスをプレーンテキストに変換する方法を理解していないため、応答をdecrypto関数のパラメータで指定し、キーの助けを借りてそれをプレーンテキストに戻すことができます。

私は暗号テキストをplnテキストに変更する方法を知っていますが、ここでは少し異なります。

しかし、データレスポンスを返さなければならないため、取得するためにPOSTリクエストを行う必要はありません。あるいは、間違っていると理解している必要があります。

これは私が唯一のテストのためにそれを使用したとして

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

私は暗号文の文字列とキーの文字列を与えるかを指定していますそれを呼び出すときなしありここ

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

機能 - 私のdecryptoですセキュリティの問題。アラートボックスに解読された値を与えています。

暗号化されたデータレスポンスをどのように取得し、それを関数で使用するのかを知りたいので、プレーンテキストのように読んでください。

EDIT:

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

ためのコードを生成?

+1

あなたは、このためにjsfiddleを作成しますか? –

+0

これは、暗号化された応答を平文に変換することだけです。https://jsfiddle.net/yktup39e/ – shv22

+0

'GET'または' POST'リクエストを行うかどうかは明確ではありませんか? POSTMANと同じリクエストを使用してください。 POSTMANは、あなたのコードを生成することもできます。メニューでjavascript ajaxを選択してください。 – 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、...を関数に呼び出し、関数コンソールログの後にその復号化された=復号化された...を追加してください...そうですか? – shv22

+0

Yeap!それが動作します。 – Ygalbel

+0

私はそれが動作していない...実際には、何もそれをクリックした後に表示されていないしようとしました... – shv22

関連する問題