我想從客戶端和服務器端的加密密碼,這意味着兩次加密,我發現在谷歌瀏覽器的代碼JavaScript md5,但我怎麼用JSF呢? 在服務器端我可以做但是,但在客戶端與JSF我怎麼辦?如何使用JSF加密
的JavaScript的md 5:http://phpjs.org/functions/md5:469
我想從客戶端和服務器端的加密密碼,這意味着兩次加密,我發現在谷歌瀏覽器的代碼JavaScript md5,但我怎麼用JSF呢? 在服務器端我可以做但是,但在客戶端與JSF我怎麼辦?如何使用JSF加密
的JavaScript的md 5:http://phpjs.org/functions/md5:469
MD5是單向加密。您無法將其解密回原始字符串。在視角方面做到這一點也沒有意義。如果您使用數據庫來存儲數據,並且您的意圖是在數據庫中對密碼進行哈希處理,那麼請在數據庫端執行此操作。有點像樣的DB爲此提供了功能。目前還不清楚您使用的是哪個數據庫,但在MySQL等情況下,它簡稱爲md5()
。
重寫你的INSERT
如下:
String sql = "INSERT INTO user (username, password) VALUES (?, md5(?))";
而且你SELECT
如下:
String sql = "SELECT * FROM user WHERE username = ? AND password = md5(?)";
如果你唯一的功能要求是傳輸通過HTTP的數據(這是不明朗加密你的問題),然後看看HTTPS(使用SSL的HTTP)。這可以在Web服務器級別進行配置。再次,目前還不清楚你正在使用哪一個,但在例如Tomcat的情況下,你可以在this documentation中找到細節。
謝謝BalusC! – Kency 2010-10-29 16:33:01
不清楚用md5散列密碼的動機是什麼;如果要阻止某人攔截流量來使用密碼,那麼這種方法將無濟於事:攻擊者可以直接發送哈希密碼,因爲原始密碼的知識不再必要。
如果您想在不傳輸密碼的情況下使用此身份驗證,請使用基於挑戰 - 響應通信的摘要式身份驗證。
謝謝Martin! – Kency 2010-10-29 16:34:34
「客戶端與JSF」是什麼意思?畢竟,JSF在服務器端。 – 2010-10-29 10:35:02
我想他在問如何加密輸入字段的內容。 –
FRotthowe
2010-10-29 10:43:15