国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > PHP > 正文

如何使PHP和JS實(shí)現(xiàn)HTTP上安全地傳輸密碼

2024-05-04 21:52:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1、理論

在普通HTTP上,一般表單中的密碼都是以明文方式傳到服務(wù)器進(jìn)行處理的。這無(wú)疑給了壞人以可乘之機(jī)!這里我們就說(shuō)說(shuō)怎么傳輸密碼才是安全的!

與其傳輸密碼本身,到不如傳輸其加密后的形式。MD5是個(gè)不錯(cuò)的選擇。第一,不同的資源幾乎不可能生成相同的MD5摘要,第二,MD5的編碼方式是不可逆推的。有了這些特性,我們就可以讓MD5摘要公開的在Internet上傳輸,而不必?fù)?dān)心密碼被壞人知道。然后在服務(wù)端也將密碼通過(guò)同樣的方式加密,最后比較這兩個(gè)字符串。

然而,我們不能為了登陸而將密碼md5后直接通過(guò)Internet傳輸,因?yàn)閴娜穗m然不會(huì)知道我們的密碼,但肯定會(huì)知道這個(gè)特殊的字符串可以授權(quán)他們?cè)L問(wèn)我們的網(wǎng)站!

解決思路:每次登陸時(shí),首先由服務(wù)器提供一個(gè)隨機(jī)字符串,然后客戶端將這個(gè)隨機(jī)字符串和密碼相加后再加密!這樣你的密碼沒有變,但是通過(guò)上面的方法加密后的MD5摘要卻完全不同。這樣就算壞人得到了這些MD5摘要,他們也不可能分析出你的密碼!

2、實(shí)現(xiàn)

客戶端Javascript并沒有提供現(xiàn)成的md5算法,但我們?cè)?google 上用 "md5 javascript" 搜索,就可以得到很多md5在Javascript上實(shí)現(xiàn)的例子。

在PHP中我就不用多說(shuō)了,直接用md5()這個(gè)函數(shù)就可以搞定!隨機(jī)字符串我們可以用session來(lái)存儲(chǔ)(PHP就是強(qiáng)啊~~)

3、注意

在JS中,中文都是UTF-8格式的,所以如果你的密碼是中文,而且存儲(chǔ)在服務(wù)端的密碼的編碼方式是GB2312,那么兩個(gè)密碼加密后的字符串是完全不同的!

Dnawo注:原文對(duì)"公鑰"和"私鑰"的理解有誤,所以對(duì)部分內(nèi)容做了適當(dāng)?shù)男薷?

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 蒙山县| 南召县| 云浮市| 满洲里市| 靖边县| 沭阳县| 高阳县| 兴业县| 呼图壁县| 丹江口市| 霸州市| 黄浦区| 砚山县| 铜川市| 荔浦县| 普定县| 淮北市| 汤原县| 正蓝旗| 剑河县| 台山市| 五莲县| 临城县| 亚东县| 濮阳市| 晋城| 辰溪县| 仙游县| 惠水县| 武功县| 明光市| 卫辉市| 台湾省| 临泉县| 瓦房店市| 新沂市| 垣曲县| 阳山县| 盱眙县| 江北区| 青田县|