2010-04-01 18 views
2

我目前有一個存儲在MD5中的密碼的SQL數據庫。服務器需要生成一個唯一的密鑰,然後發送給客戶端。在客戶端,它將使用密鑰作爲鹽,然後與密碼一起散列併發送回服務器。使用MD5和SQL進行服務器授權

唯一的問題是SQL DB中已經有MD5中的密碼。因此,爲了這個工作,我將不得不MD5密碼客戶端,然後MD5它再次與鹽。我是否做錯了,因爲它似乎不是一個合適的解決方案。任何信息表示讚賞。

回答

1

您應該使用SSL來加密連接,然後通過來自客戶端的純文本發送密碼。然後服務器將md5並與數據庫中的md5哈希進行比較,以查看它們是否相同。如果是這樣的話auth = success

MD5在客戶端上輸入密碼並不會帶來任何好處,因爲具有md5密碼的黑客可以像使用純文本一樣簡單。

+0

這個問題不是關於* MD5在客戶端的密碼,以提高安全性*。這顯然毫無意義。看來海報想要使用[加密現時](http://en.wikipedia.org/wiki/Cryptographic_nonce)來實施安全認證。問題是通常需要用戶和服務器都知道密碼。所以這個問題真的是*因爲服務器已經只存儲密碼散列會在客戶端散列密碼使得它可以使用nonce?*但是,我必須同意使用SSL更簡單和更安全。 – 2010-04-02 15:20:19

0

我不完全清楚你在問什麼,但python hashlib(閱讀FAQ)和wikipedia應該讓你到你想去的地方。

在python中的真實世界的例子檢查django authentication(源碼)。