- 相關(guān)推薦
淺析PHP加密技術(shù)在網(wǎng)站安全方面的應用
摘 要:PHP語(yǔ)言是當前網(wǎng)站開(kāi)發(fā)最熱門(mén)的語(yǔ)言之一,越來(lái)越多使用PHP語(yǔ)言開(kāi)發(fā)的網(wǎng)站涌現在了互聯(lián)網(wǎng)上。但是由于安全意識的缺乏以及攻擊手段的層出不窮,PHP網(wǎng)站所暴漏出來(lái)的安全性問(wèn)題也越來(lái)越多,本文主要就PHP中內置的加密函數在網(wǎng)絡(luò )安全中的應用進(jìn)行敘述。
關(guān)鍵詞:PHP;加密函數;身份認證;網(wǎng)站安全;
引言
自20世紀90年代國內互聯(lián)網(wǎng)開(kāi)始發(fā)展到現在,互聯(lián)網(wǎng)信息幾乎覆蓋了我們日;顒(dòng)所有知識范疇,并逐漸成為我們生活、學(xué)習、工作中必不可少的一部分。據統計,從2003年開(kāi)始,我國的網(wǎng)頁(yè)規;颈3至朔脑鲩L(cháng)速度,并且呈上升趨勢。PHP語(yǔ)言作為當今最熱門(mén)的網(wǎng)站程序開(kāi)發(fā)語(yǔ)言,它具有成本低、速度快、可移植性好、內置豐富的函數庫等優(yōu)點(diǎn),因此被越來(lái)越多的企業(yè)應用于網(wǎng)站開(kāi)發(fā)中。出于對網(wǎng)絡(luò )交易和數據傳輸安全方面的考慮,動(dòng)態(tài)網(wǎng)站技術(shù)PHP語(yǔ)言腳本中內置了加密函數,它是一種保證網(wǎng)站信息安全的最有效的方法。
1.PHP的內置函數及應用
PHP中的內置函數包括單向函數crypt()、散列MD5、數據編碼與解碼base64_enecode/base64_decode等。
1.1函數crypt()
crypt()函數常用來(lái)對一些明文進(jìn)行單向加密,例如,網(wǎng)站中需要驗證用戶(hù)的密碼時(shí),就需要對用戶(hù)輸入的密碼進(jìn)行單向加密,并將單向加密的密文與系統中保存的密文進(jìn)行比較,若相同,則允許用戶(hù)登錄。string crypt(string input_string [, string salt])中的input_string是想要加密的字符串,可選參數salt能夠降低預計算攻擊的威脅。由于采用的是單向加密,加密后的密文一旦落入到了第三方的手中,也無(wú)法從中獲得明文,因此其意義不大。
除單向加密外,crypt()函數還可以用來(lái)限制用戶(hù)的訪(fǎng)問(wèn)權限,即對用戶(hù)進(jìn)行身份驗證。首先創(chuàng )建一個(gè)有用戶(hù)名和密碼的表,然后將對應的數據存入表中。這里每個(gè)口令的前兩個(gè)字母創(chuàng )建了干擾串。使用Apche的口令-應答認證配置提示用戶(hù)輸入用戶(hù)名和口令,PHP將其識別為$PHP_AUTH_USER和$PHP_AUTU_PW。
1.2散列md5
PHP中內置的md5()將一個(gè)可變長(cháng)度的信息轉化為128位消息摘要形式,檢查文件的完整性,并進(jìn)行數字簽名驗證和身份驗證等。md5(string,raw)中的string為輸入計算的字符串,可選參數raw規定了十六進(jìn)制或二進(jìn)制輸出格式。使用該函數時(shí),只有其中一個(gè)字符串中的一個(gè)字符發(fā)生了改變,則計算得到的結果也是截然不同的。
1.3 base64_enecode與base64_decode
Base64_encode()返回使用base64對數據所做的編碼,進(jìn)而使二進(jìn)制數據通過(guò)非純8-bit傳輸層傳輸。base64_decode 則對使用了MIME base64編碼的數據進(jìn)行解碼,并返回原始數據,此時(shí)返回的數據可能是二進(jìn)制的。
2.PHP加密擴展庫及應用
PHP主目錄下包含了兩個(gè)擴展庫:mcrypt和mhash。
2.1mcrypt
mcrypt提供了35種用于數據處理的函數,下面介紹數據加密函數和數據解密函數mcrypt_encrypt()和mcrypt_decrypt()的應用。
$str=” PHP加密技術(shù)”;//要加密的文字
$key=”key:123”;//密鑰
$cipher=MCRYPT_ECB;//密碼類(lèi)型
$modes=MCRYPT_MODE_ECB;//密碼模式
$iv=mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);//初始化向量
Echo”輸入的明文” .$str.”
”;
$str_encrypt=mcrypt_encrypt($cipher,$key,$str,$mode,$iv);//加密函數
echo”加密后的密文” .$str_encrypt.”
”;
$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_開(kāi)頭的。
4.結束語(yǔ)
在上述有關(guān)PHP內置函數及加密擴展庫的論述中,crypt()和md5()的功能方面存在一定的限制,Mcrypt和Mhash擴展庫則提供了更全面加密與解密方法。在應用PHP加密為實(shí)際網(wǎng)站加密的過(guò)程中,由于PHP是一種服務(wù)器端技術(shù),不能阻止數據在傳輸過(guò)程中泄密,因此需要將服務(wù)器與客戶(hù)端間數據傳輸的安全性作為一個(gè)重點(diǎn)的問(wèn)題加以考慮,同時(shí)配合Apache-SSL等安全服務(wù)器,以此來(lái)實(shí)現一個(gè)更劇安全性能的網(wǎng)站系統。
參考文獻
[1]W.Jason Gilmore,朱濤江譯.PHP與PHP程序設計.北京:人民郵電出版社,2009
[2]劉麗萍,張力宏,張蘭蘭.使用PHP對信息進(jìn)行加密傳輸的研究.情報科學(xué),2009,2(9):1383-1385
[3]吳曉剛.PHP網(wǎng)站加密技術(shù)及其應用.電腦編程技巧與維護,2011
【淺析PHP加密技術(shù)在網(wǎng)站安全方面的應用】相關(guān)文章:
淺析多媒體網(wǎng)絡(luò )技術(shù)在中醫藥教育方面的應用展望02-28
淺析安鋼互聯(lián)網(wǎng)站的動(dòng)態(tài)設計與應用03-05
多線(xiàn)程技術(shù)在邊緣檢測方面的應用11-22
淺析數據融合技術(shù)及其在林業(yè)中的應用03-19