如何使PHP和JS實現HTTP上安全地傳輸密碼_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:解答PHP上傳多個圖片并校驗的代碼問題
      單張的圖片上傳是不復雜的,這里涉及到多張圖片上傳和對圖片格式的校驗,保證上傳的一定是圖片,防止上傳其他文件到服務器。基本實現算法是使用數組的形式,把所有的圖片提交個一個數組,對數組的元素進行一個個的處理。 以下為引用的內容: 以下為引用的內

      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,那么兩個密碼加密后的字符串是完全不同的!

      Dnawo注:原文對"公鑰"和"私鑰"的理解有誤,所以對部分內容做了適當的修改!

      分享:怎樣實現PHP三種直接讀取數據庫信息
      這段代碼的功能是: 連接到一個 url 地址為localhost 、 端口為 3306 的mysql服務器上。mysql服務器的帳號是root,密碼是9999。mysql 服務器上有一個數據庫 ok , 數據庫里有一個表 abc。表 abc 一共為兩列,列名分別是 id 和 name ,將 abc 里的所有數據讀

      來源:模板無憂//所屬分類:PHP教程/更新時間:2009-06-24
      相關PHP教程