2012-10-20 51 views
0

我想弄清楚如何加密和解密MVC3 WebAPI的數據。情況是: 我正在做一個反饋申請,其中有用戶註冊,用戶可以註冊項目。 項目必須用作反饋外鍵(我的意思是反饋必須分配給特定的項目)。 問題是:我應該如何加密項目Id(它將是GUID)並在服務器端解密它。我應該使用MD5 +鹽嗎?我應該使用什麼鹽?也許時間戳,但我應該如何通過這個時間戳?那麼,不知道從哪裏開始做什麼。任何幫助,將不勝感激。 注意:我不需要授權來訪問API方法,我需要傳遞祕密參數(作爲鍵)。MVC WebAPI參數加密

回答

0

如果您不使用身份驗證來調用Web API方法,則可以使用共享祕密密碼來加密數據。 AES是常用的對稱密鑰算法來加密/解密您可以使用的數據。這假設客戶端和服務器必須共享一個共同的祕密。

MD5是散列(單向)算法。這不是一種加密算法。 MD5哈希的整個想法是它不能被顛倒。

2

可能你只需要一個HTTPS?正文和HTTPS中的參數。爲什麼重新發明輪子?!

+0

你能提供更多的信息,或者也許是教程嗎?我發誓我搜索了幾個小時,找不到適合我的問題的任何信息 – DmitryL

0

我已經撰寫了一個開源項目並在此處記錄它:Build a RESTful API。也許這會讓你朝着正確的方向前進。

此解決方案使用MD5哈希API IDAPI祕密和UNIX時間戳和在HTTP頭中傳遞的。由於@Darin Dimitrov聲明,MD5是單向散列,但可以通過關於散列和蠻力技術的一些知識來逆轉。有更好的選擇,如AES在那裏,但這很簡單,一個好的開始。實際上,這種驗證方法與Mashery’s Authentication使用的方法相同。


Build a RESTful API引用,幷包含一個完全成熟的入門套件,用於創建具有驗證會員API使用計量與支撐.NET EF數據庫沿的API。

至於測試服務,您可以使用RESTClient執行與自定義標頭,而不是使用捲曲的HTTP調用。