HTTP上PHP+JS實現(xiàn)安全地傳輸密碼_PHP教程
推薦:淺析PHP 5.0對象模型深度探索之綁定除了限制訪問,訪問方式也決定哪個方法將被子類調(diào)用或哪個屬性將被子類訪問. 函數(shù)調(diào)用與函數(shù)本身的關(guān)聯(lián),以及成員訪問與變量內(nèi)存地址間的關(guān)系,稱為綁定。 在計算機語言中有兩種主要的綁
1、理論
在普通HTTP上,一般表單中的密碼都是以明文方式傳到服務(wù)器進行處理的。這無疑給了壞人以可乘之機!這里我們就說說怎么傳輸密碼才是安全的!
與其傳輸密碼本身,到不如傳輸其加密后的形式。MD5是個不錯的選擇。第一,不同的資源幾乎不可能生成相同的MD5摘要,第二,MD5的編碼方式是不可逆推的。有了這些特性,我們就可以讓MD5摘要公開的在Internet上傳輸,而不必擔心密碼被壞人知道。然后在服務(wù)端也將密碼通過同樣的方式加密,最后比較這兩個字符串。
然而,我們不能為了登陸而將密碼md5后直接通過Internet傳輸,因為壞人雖然不會知道我們的密碼,但肯定會知道這個特殊的字符串可以授權(quán)他們訪問我們的網(wǎng)站!
解決思路:每次登陸時,首先由服務(wù)器提供一個隨機字符串,然后客戶端將這個隨機字符串和密碼相加后再加密!這樣你的密碼沒有變,但是通過上面的方法加密后的MD5摘要卻完全不同。這樣就算壞人得到了這些MD5摘要,他們也不可能分析出你的密碼!
2、實現(xiàn)
客戶端Javascript并沒有提供現(xiàn)成的md5算法,但我們在 google 上用 "md5 javascript" 搜索,就可以得到很多md5在Javascript上實現(xiàn)的例子。
在PHP中我就不用多說了,直接用md5()這個函數(shù)就可以搞定!隨機字符串我們可以用session來存儲(PHP就是強啊~~)
3、注意
在JS中,中文都是UTF-8格式的,所以如果你的密碼是中文,而且存儲在服務(wù)端的密碼的編碼方式是GB2312,那么兩個密碼加密后的字符串是完全不同的!
分享:如何實現(xiàn)強大的翻頁跳轉(zhuǎn)功能我們都知道用 php mysql 在 web 頁實現(xiàn)數(shù)據(jù)庫資料全部顯示是非常簡單而有趣的,數(shù)據(jù)庫資料很少的情況下頁面顯示還是讓人滿意的,但是當數(shù)據(jù)庫資料非常多的情況下,頁面的顯示情況將會變的 非
- 相關(guān)鏈接:
- 教程說明:
PHP教程-HTTP上PHP+JS實現(xiàn)安全地傳輸密碼
。