2011-09-26 10 views
5

我正在開發一個應用程序到Windows(C#),Iphone,Android和Iphone,它將連接到SOAP WebService,用於存儲數據庫上的信息。加密C#,ANDROID和IPHONE之間的數據

我正在尋找一種方法來加密/解密這些平臺之間的信息。有沒有跨平臺庫?

回答

2

由於@Sascha說,AES是可用的幾乎每一個平臺上。你需要做的是確保兩個平臺上的一切都一樣:

  1. 相同的模式;使用CBC或CTR模式。
  2. 同樣的IV;明確設置它,不要使用默認值,因爲它在不同的系統上通常會有所不同。
  3. 相同的鍵;很明顯,但是它們在字節級別上需要保持一致,因爲文本可以在不同的系統上進行不同的編碼。明確指出您正在使用的編碼。
  4. 相同的填充;對於使用PKCS7的AES,再次不依賴於在不同系統上可能不同的默認值。

無論你選擇什麼,都要明確設置,不要依賴默認設置。系統之間的默認值可能不同,任何差異都會導致解密失敗。

+1

嗨,你可以提供一個簡單的演示示例爲此使用所有三個平臺? – Pratik

2

你看過MonoTouch和MonoDroid的Xamarin嗎?

使用這些庫,您可能只需在所有這三個庫之間使用本機.Net XML服務並共享所有後端代碼。

2

我想推薦高級加密標準(AES)。這是非常安全的,我確信每個平臺都有一個很好的默認實現這個算法。

看一看在detailes:AES on wikipedia