我正在用C#和.NET Framework 4.0開發WCF Web服務。我還在開發一個iOS和Android客戶端來連接它。用C#加密字符串並在iOS和Android上解密
在服務器端,我必須生成一個偶然的密碼,加密它,然後將其發送回iOS客戶端或Android客戶端。
我不知道如何使用.NET Framework加密字符串。在互聯網上搜索,我發現有算法可以做到這一點:MD5,RSA等(我不確定是否瞭解如何加密字符串,因爲我還沒有進行字符串加密)。
如果我使用MD5加密密碼,那麼在iOS和Android上解密它需要做些什麼?
你推薦我什麼?
使用SSL加密連接。遠遠超過你自己設計的任何東西。 – CodesInChaos
@CodesInChaos我想存儲在數據庫以及iOS和Android設備上加密的密碼。 – VansFannel
對於傳輸,發送SSL中的密碼(不要忘記驗證服務器證書)。對於數據庫,使用專門的密碼哈希(PBKDF2,bcrypt或scrypt)。有關詳細信息,請參見[如何安全地哈希密碼?](http://security.stackexchange.com/questions/211/how-to-securely-hash-passwords)。在.net中,最簡單的散列是'Rfc2898DeriveBytes',它具有〜20000次迭代,這是PBKDF2-HMAC-SHA-1的一個實現。 – CodesInChaos