【正文】
sh ,它支持下面的混編算法:CRC32 HAVAL160 MD5CRC32B HAVAL192 RIPEMD160GOST HAVAL224 SHA1HAVAL128 HAVAL256 TIGER安裝 象Mcrypt一樣,Mhash也沒有包括在PHP軟件包中,對于非Windows用戶而言,下面是安裝過程:下載Mhash擴(kuò)展庫tar ./configuremakemake installcd PHP所在的目錄./configure withmhash=[dir] [otherconfigurationdirectives]makemake install 象Mcrypt一樣,根據(jù)PHP在互聯(lián)網(wǎng)服務(wù)器軟件上的安裝方式,可能需要對Mhash進(jìn)行其他的配置?! τ赪indows用戶而言。只要下載并進(jìn)行解壓縮。使用Mhash 對信息進(jìn)行混編非常簡單,看一下下面的例子:?php= MHASH_TIGER。= These are the directions to the secret fort. Two steps left, three steps right, and cha chacha.。= mhash(, )。print The hashed message is . bin2hex()。? 執(zhí)行這一段腳本程序?qū)⒌玫较旅娴妮敵鼋Y(jié)果:The hashed message is 07a92a4db3a4177f19ec9034ae5400eb60d1a9fbb4ade461 在這里使用bin2hex()函數(shù)的目的是方便我們理解的輸出,這是因?yàn)榛炀幍慕Y(jié)果是二進(jìn)制格式,為了能夠?qū)⑺D(zhuǎn)化為易于理解的格式,必須將它轉(zhuǎn)換為十六進(jìn)制格式。 需要注意的是,混編是單向功能,其結(jié)果不依賴輸入,因此可以公開顯示這一信息。這一策略通常用于讓用戶比較下載文件和系統(tǒng)管理員提供的文件,以確保文件的完整性。 Mhash還有其他一些有用的函數(shù)。例如,我需要輸出一個Mhash支持的算法的名字,由于Mhash支持的所有算法的名字都以MHASH_開頭,因此,可以通過執(zhí)行如下的代碼完成這一任務(wù):?php= MHASH_TIGER。print This data has been hashed with the.mhash_get_hash_name().hashing algorithm.。? 得到的輸出是:This data has been hashed with the TIGER hashing algorithm. 關(guān)于PHP和加密最后需要注意的一個問題 關(guān)于PHP和加密需要注意的最后的一個重要問題是在服務(wù)器和客戶端之間傳輸?shù)臄?shù)據(jù)在傳輸過程中是不安全的!PHP是一種服務(wù)器端技術(shù),不能阻止數(shù)據(jù)在傳輸過程中泄密。因此,如果想實(shí)現(xiàn)一個完整的安全應(yīng)用,建議選用ApacheSSL或其他的安全服務(wù)器布置?! 〗Y(jié)論 這篇文章介紹了PHP最有用的功能之一━━數(shù)據(jù)加密,不僅討論了PHP內(nèi)置的crypt() 和md5()加密函數(shù),還討論了用于數(shù)據(jù)加密的功能強(qiáng)大的擴(kuò)展庫━━Mcrypt和Mhash。在這篇文章最后,我需要指出的是,一個真正安全的PHP應(yīng)用還應(yīng)該包括安全的服務(wù)器,由于PHP是一種服務(wù)器端的技術(shù),因此,在數(shù)據(jù)由客戶端向服務(wù)器端進(jìn)行傳輸時,它不能保證數(shù)據(jù)的安全。責(zé)任編輯:小李原作者: 劉彥青 來 源: 賽迪網(wǎng) 共有64位讀者閱讀過此文