2012-03-05 63 views
0

我正在製作一個像yelp的程序。有些人有一些帳戶。所以我得把密碼發到網上。什麼是標準代碼和編碼通過網絡發送密碼

我應該在發送密碼之前加密密碼嗎?

之後,其他人使用的標準密碼策略是什麼?

加密密碼是否應該存儲在mySQL服務器上?換句話說,絕對不需要解密?

基本上它就像What encryption procedure I must use to send encrypted 'email' and 'password' values over the HTTP protocoll?但對Objective-C的用戶登錄

後,我的計劃需要告訴用戶已被認證的服務器。我的程序是否需要繼續發送密碼?

回答

1

有超過一個架構可以實現,你必須選擇考慮許多因素,如性能,有多少用戶,服務器架構。 ..

基本上,你必須使用https,而不是HTTP,存儲哈希密碼(MD5,SHA,ECC),並經常檢查,如果哈希密碼等於存儲哈希密碼。

您也可以使用令牌實現「會話」(您必須創建一種API服務器端,然後在客戶端使用它)或在每次調用Web服務時傳遞用戶名和密碼(Web服務必須驗證憑據每次被調用)。另一個「快速」(它不是那麼快)解決方案是實現(服務器 - 客戶端)標準協議,如(它是我最喜歡的)oAuth 2.它被Twitter和Facebook使用,你可以在這裏瞭解更多: http://oauth.net/2/

+0

+1,但尚不清楚如何使用https? – 2012-03-07 06:26:18

+0

您的Web服務必須在Web服務器上運行(通常是HTTPS運行在443端口上)配置SSL證書,您必須從證書頒發機構購買 - 除非您安裝了自簽名SSL證書。所有主要Web服務器均支持SSL證書。只需嘗試谷歌搜索,即可找到詳細的「到「您的Web服務器。 – 2012-03-07 10:30:02