我有WCF服務,即獲取並返回JSON數據。以及調用此服務的Android移動應用程序。WCF服務(JSON)和Android客戶端 - 信息安全
- 如果可能,我如何加密這兩者之間的消息?
- 如果沒有,如何做自定義加密?
編輯:
這裏是服務器端和客戶端的附加信息。
服務看起來未來:
服務接口:
<ServiceContract()>
Public Interface ITest
<OperationContract()>
<WebInvoke(Method:="POST", RequestFormat:=WebMessageFormat.Json, ResponseFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.WrappedRequest)>
Function Test(header As RequestHeader, body As TestRequestResponse) As Boolean
End Interface
服務代碼
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)>
<ServiceBehavior(ConcurrencyMode:=ConcurrencyMode.Multiple, InstanceContextMode:=InstanceContextMode.Single)>
Public Class TestService
Implements ITest
Public Function Test(header As RequestHeader, body As TestRequestResponse) As Boolean Implements ITest.Test
Return True
End Function
End Class
的Web.Config
<system.serviceModel>
<services>
<service behaviorConfiguration="RMWS.TestBehavior" name="RMWS.TestService">
<endpoint address="Test" binding="webHttpBinding" behaviorConfiguration="WebBehavior" bindingConfiguration="WebBinding" contract="RMWS.ITest" />
</service>
</services>
<bindings>
<webHttpBinding>
<binding name="WebBinding"/>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="RMWS.TestBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
客戶端調用
客戶端調用目前從JavaScript製成僅可用於測試。將來客戶端將是Android應用程序,但總體思路是一樣的。
$.ajax({
type: "POST",
url: "http://localhost/RMWS/TestService.svc/Test/Test",
contentType: "application/json",
dataType: "json",
data: JSON.stringify(somedata),
success: function (data)
{
...
},
error: function (httpRequest, textStatus, errorThrown)
{
alert(textStatus + ": " + errorThrown);
}
});
編輯2:
我知道它可以很容易地使用SSL來完成。但是在我的公司認爲它對於性能和流量來說太昂貴了,所以他們不想使用SSL,而是使用其他一些加密技術。如果可能的話,只有請求可能被編碼,因爲響應不包含任何敏感信息。
編輯3:
除了約瑟夫的回答沒有其他意見?
請更新您的問題,給我們的更多信息:您的客戶是如何連接到您的服務?你嘗試過什麼,等 –
@Terry Donaghe:見問題的更新,請 – Kamarey