2016-07-29 11 views
0

HttpResponseMessageのWeb APIで暗号化ストリームとして返す必要があるJSON文字列があります。 クライアントは暗号化されたストリームを受信し、このように復号化します。 ウェブAPIで暗号化されたストリームを返す方法は?

private string str(HttpWebResponse AStream) 
{ 
    string result; 
    using (Stream responseStream = AStream.GetResponseStream()) 
    { 
     result = DecryptAesStream(responseStream, Key); 
     return result; 
    } 
} 

は、私は、最初のJSON文字列を暗号化ファイルストリームにそれをロードする必要がありますが、内容として文字列がかかるため、その後どのように私はHttpRepsonseMessageでそれを返すのですか? 私は何をする必要がありますか?

+0

ような何かを試すことができます。 – SLaks

+0

何らかの理由で文字列を返す必要がある場合、暗号化アルゴリズムの結果はバイト配列なので、エンコードする必要があります。これにはBase64エンコーディングがよく使われます。受信側では、解読アルゴリズムのためにバイト配列にデコードする必要があることに留意してください。 – Kevin

答えて

1

あなたはバイト配列を返すようにしたい、この

 public byte[] GetEncryptedStream(string jsonData) 
     { 
      byte[] dataBytes = System.Text.Encoding.UTF8.GetBytes(jsonData); 
      byte[] key = null;//GetKey() //I am assuming you arealy have your Key 
      //Call your encrypt function below 
      byte[] encryptedDataBytes = encrypt(dataBytes, key); // I am assuming your function returns byte array 
      return encryptedDataBytes; 
     } 

     public HttpResponseMessage GetHttpResponseMessage() 
     { 
      var result = new HttpResponseMessage(System.Net.HttpStatusCode.OK); 
      String jsonString = "your json data"; 
      byte[] data = GetEncryptedStream(jsonString); 
      result.Content = new ByteArrayContent(data); 
      return result; 
     } 
+0

ありがとうございます。 GetEncryptedStreamを実装するにはどうすればよいですか?私の暗号化機能は、データをバイトとして取ります:暗号化(バイト[]データ、バイト[]キー) – JohnM

+0

上記の更新された回答を参照してください..私はあなたの暗号化関数が何を返すか分からないので、バイト[]を返すと仮定しています – Paresh

+0

Awesome!どうもありがとうございます。コードを少し修正する必要がありましたが、私の問題を解決するのに役立ちました。 – JohnM

関連する問題