當前位置:才華齋>計算機>php語言>

PHP加密技術在安全方面的應用

php語言 閱讀(2.52W)

導語:PHP語言是當前網站開發最熱門的語言之一,越來越多使用PHP語言開發的網站湧現在了網際網路上。下面的是YJBYS為大家蒐集的PHP加密技術在網站安全方面的應用介紹,希望對各位有所幫助。

PHP加密技術在安全方面的應用

  關鍵詞:PHP;加密函式;身份認證;網站安全;

  引言

自20世紀90年代國內網際網路開始發展到現在,網際網路資訊幾乎覆蓋了我們日常活動所有知識範疇,並逐漸成為我們生活、學習、工作中必不可少的一部分。據統計,從2003年開始,我國的網頁規模基本保持了翻番的增長速度,並且呈上升趨勢。PHP語言作為當今最熱門的網站程式開發語言,它具有成本低、速度快、可移植性好、內建豐富的函式庫等優點,因此被越來越多的企業應用於網站開發中。出於對網路交易和資料傳輸安全方面的考慮,動態網站技術PHP語言指令碼中內建了加密函式,它是一種保證網站資訊保安的最有效的方法。

  的內建函式及應用

PHP中的內建函式包括單向函式crypt()、雜湊MD5、資料編碼與解碼base64_enecode/base64_decode等。

  1.1函式crypt()

crypt()函式常用來對一些明文進行單向加密,例如,網站中需要驗證使用者的密碼時,就需要對使用者輸入的密碼進行單向加密,並將單向加密的密文與系統中儲存的密文進行比較,若相同,則允許使用者登入。string crypt(string input_string [, string salt])中的input_string是想要加密的字串,可選引數salt能夠降低預計算攻擊的威脅。由於採用的是單向加密,加密後的密文一旦落入到了第三方的手中,也無法從中獲得明文,因此其意義不大。

除單向加密外,crypt()函式還可以用來限制使用者的訪問許可權,即對使用者進行身份驗證。首先建立一個有使用者名稱和密碼的表,然後將對應的資料存入表中。這裡每個口令的前兩個字母建立了干擾串。使用Apche的口令-應答認證配置提示使用者輸入使用者名稱和口令,PHP將其識別為$PHP_AUTH_USER和$PHP_AUTU_PW。

  1.2雜湊md5

PHP中內建的md5()將一個可變長度的資訊轉化為128位訊息摘要形式,檢查檔案的完整性,並進行數字簽名驗證和身份驗證等。md5(string,raw)中的string為輸入計算的字串,可選引數raw規定了十六進位制或二進位制輸出格式。使用該函式時,只有其中一個字串中的一個字元發生了改變,則計算得到的結果也是截然不同的。

  1.3 base64_enecode與base64_decode

Base64_encode()返回使用base64對資料所做的編碼,進而使二進位制資料通過非純8-bit傳輸層傳輸。base64_decode 則對使用了MIME base64編碼的資料進行解碼,並返回原始資料,此時返回的'資料可能是二進位制的。

  加密擴充套件庫及應用

PHP主目錄下包含了兩個擴充套件庫:mcrypt和mhash。

  2.1mcrypt

mcrypt提供了35種用於資料處理的函式,下面介紹資料加密函式和資料解密函式mcrypt_encrypt()和mcrypt_decrypt()的應用。

?php

$str=” PHP加密技術”;//要加密的文字

$key=”key:123”;//金鑰

$cipher=MCRYPT_ECB;//密碼型別

$modes=MCRYPT_MODE_ECB;//密碼模式

$iv=mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);//初始化向量

Echo”輸入的明文” .$str.”p”;

$str_encrypt=mcrypt_encrypt($cipher,$key,$str,$mode,$iv);//加密函式

echo”加密後的密文” .$str_encrypt.”p”;

$str_decrypt=mcrypt_decrypt($cupher,$key,$str_encrypt,modes,$iv);//解密函式

Echo”還原”.$str_decrypt;

?

  2.2 mhash

Mhash支援的混編演算法有:CRC32 HAVAL160 MD6;CRC32B HAVAL192 RIPEMD160;GOST HAVAL224 SHA1;HAVAL128 HVAL256 TIGER。需要注意的是mhash支援的所有演算法的名字都是以MHASH_開頭的。