首頁 > 後端開發 > php教程 > http://www.12306.cn/mormhweb/ 在普通HTTP上安全地傳輸密碼

http://www.12306.cn/mormhweb/ 在普通HTTP上安全地傳輸密碼

WBOY
發布: 2016-07-29 08:37:05
原創
1748 人瀏覽過

1。理論 
    在普通HTTP上,一般表單中的密碼都是以明文方式傳到伺服器處理的。這無疑給了壞人以可乘之機!這裡我們就說說怎麼傳輸密碼才是安全的! 
    與其傳送密碼本身,到不如傳送其加密後的形式。 MD5是不錯的選擇。第一,不同的資源幾乎不可能產生相同的MD5摘要,第二,MD5的編碼方式是不可逆推的。有了這些特性,我們就可以讓MD5摘要公開的在Internet上傳輸,而不必擔心密碼被壞人知道。然後在服務端也將密碼透過相同的方式加密,最後比較這兩個字串。 
    然而,我們不能為了登陸而將密碼md5後直接透過Internet傳輸,因為壞人雖然不會知道我們的密碼,但肯定會知道這個特殊的字串可以授權他們訪問我們的網站! 
    這是公匙和私匙要解決的問題,首先由伺服器提供一個隨機字串,然後客戶端將這個隨機字串和密碼相加後再加密! 
    每次登陸時,伺服器會產生不同的隨機字串,這樣你的密碼沒有改變,但是透過上面的方法加密後的MD5摘要卻完全不同。這樣就算壞人拿到了這些MD5摘要,他們也不可能分析出你的密碼! 
    這種方法中,伺服器提供的隨機字串叫做"公匙",壽命很短,並且可以被任何人利用;你的密碼叫做"私匙",壽命很長,而且永遠也不會被人知道。 
    2。實現 
    客戶端Javascript並沒有提供現成的md5演算法,但我們在 google 上用 "md5 javascript" 搜索,就可以得到很多md5在Javascript上實現的例子。 
    在PHP中我就不用多說了,直接用md5()這個函數就可以搞定!隨機字串我們可以用session來儲存(PHP就是強啊~~) 
    3。注意 
    在JS中,中文都是UTF-8格式的,所以如果你的密碼是中文,而且儲存在服務端的密碼的編碼方式是GB2312,那麼兩個密碼加密後的字串是完全不同的!

以上就介紹了http://www.12306.cn/mormhweb/ 在普通HTTP上安全地傳輸密碼,包括了http://www.12306.cn/mormhweb/方面的內容,希望對PHP教程有興趣的朋友有幫助。

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板