PHP加密技術(shù)
php是現(xiàn)在比較流行的服務(wù)器端軟件,通過php編制的動態(tài)網(wǎng)頁應(yīng)用的十分廣泛,那么我今天就帶大家來了解一下php加密技術(shù)。
一、PHP加密技術(shù)的基本原理
是對原來為明文的文件或數(shù)據(jù)按某種加密算法進行處理,使其成為不可讀的一段代碼,通過這樣的途徑來達到保護數(shù)據(jù)不被非法竊取,閱讀的目的。
二、PHP中對數(shù)據(jù)進行加密的函數(shù)
PHP中對數(shù)據(jù)進行加密的函數(shù)有:crypt(),md5()和shal(),還有加密擴展庫Mcrypt和Mhash。
1、crypt():
可以完成單向加密功能,(無法解密)。
格式:string crypt(string str[,string salt]);
str參數(shù)是需要加密的字符串,salt參數(shù)為加密時使用的干擾串。如省略掉第二個參數(shù),則會隨機生成一個干擾串。
說明:缺省情況下,PHP使用一個2個字符的DES干擾串,如果系統(tǒng)使用的是MD5,則會使用一個12個字符??梢酝ㄟ^CRYPT_SALT_LENCTH變量來查看當(dāng)前所使用的干擾串的長度,該函數(shù)支持4種算加密法和長度。
2、MD5():
格式:string md5(string str[,bool raw_output]);
其中str為要加密的明文,raw_output參數(shù)如果為真,則函數(shù)返回一個二進制形式的密文。默認(rèn)為false。
3、sha1():
格式:string sha1(string str [,bool raw_output])
說明:函數(shù)返回一個40位的16進制數(shù),如果參數(shù)raw_output為真,則返回一個20位的二進制數(shù)。默認(rèn)為false。
區(qū)別:相同字符串多次刷新,crypt()加密會出現(xiàn)多個不同效果;MD5()和sha1()效果不會改變。
4、PHP加密擴展庫:
Mcrypt()擴展庫:既能加密又能解密。
安裝Mcrypt()擴展庫:首先把PHP目錄下的libmcrypt.dll文件copy到系統(tǒng)目錄下,然后在php.ini文件中找到";extension=php_mcrypt.dll"將前面的分號去掉,最后重啟服務(wù)器。
Mcrypt()擴展庫常量:支持20多種加密算法和8種加密模式,可以通過函數(shù)mcrypt_list_algorithms()和mcrypt_list_modes()來查看。
Mcrypt應(yīng)用:初始化向量:mcrypt_create_iv(該向量的大小,向量的源(MCRYPT_RAND:取系統(tǒng)的隨機數(shù)))
獲取到初始化向量的大?。簃crypt_create_iv_size(加密算法;加密模式);
加密:mcrypt_encrypt(加密算法,密鑰,需要加密的數(shù)據(jù),算法模式,向量);
解密:mcrypt_decrypt(加密算法,密鑰,需要解密的數(shù)據(jù),算法模式,向量);
5、Mhash擴展庫:
安裝Mhash擴展庫:首先把PHP目錄下的libmhash.dll文件copy到系統(tǒng)目錄下,然后在php.ini文件中找到";extension=php_mhash.dll"將前面的分號去掉,最后重啟服務(wù)器。
Mhash擴展庫常量:Mhash擴展庫支持MD5,SHA1,CRC32等多種散列算法,可以使用mhash_count()和mhash_get_hash_name()函數(shù)輸出支持的算法名稱。
Mhash擴展庫應(yīng)用:獲取文件的全部內(nèi)容:file_get_contents(文件名)。
小知識之php:
PHP,是英文超文本預(yù)處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內(nèi)嵌式的語言,是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有類似于C語言,被廣泛地運用。










