【文章內(nèi)容簡介】
長度的字符串可以用來檢查文件的完整性和驗(yàn)證數(shù)字簽名以及用戶身份驗(yàn)證。由于它適合于PHP,PHP內(nèi)置的md5()混編函數(shù)將把一個(gè)可變長度的信息轉(zhuǎn)換為128位(32個(gè)字符)的信息文摘?;炀幍囊粋€(gè)有趣的特點(diǎn)是不能通過分析混編后的信息得到原來的明碼,因?yàn)榛炀幒蟮慕Y(jié)果與原來的明碼內(nèi)容沒有依賴關(guān)系。 即便只改變一個(gè)字符串中的一個(gè)字符,也將使得MD5混編算法計(jì)算出二個(gè)截然不同的結(jié)果。我們首先來看下表的內(nèi)容及其相應(yīng)的結(jié)果: 使用md5()混編字符串 ?php= This is some message that I just wrote。= md5()。print hash: 。? 結(jié)果:hash: 81ea092649ca32b5ba375e81d8f4972c 注意,結(jié)果的長度為32個(gè)字符。再來看一下下面的表,其中的的值有了一點(diǎn)微小的變化:使用md5()對(duì)一個(gè)稍微變化的字符串進(jìn)行混編 ?php//注意,message中少了一個(gè)s= This is some mesage that I just wrote。= md5()。print hash2: br /br /。? 結(jié)果:hash2: e86cf511bd5490d46d5cd61738c82c0c 可以發(fā)現(xiàn),盡管二個(gè)結(jié)果的長度都是32個(gè)字符,但明文中一點(diǎn)微小的變化使得結(jié)果發(fā)生了很大的變化,因此,混編和md5()函數(shù)是檢查數(shù)據(jù)中微小變化的一個(gè)很好的工具?! ”M管crypt()和md5()各有用處,但二者在功能上都受到一定的限制。在下面的部分中,我們將介紹二個(gè)非常有用的被稱作Mcrypt和Mhash的PHP擴(kuò)展,將大大拓展PHP用戶在加密方面的選擇?! ”M管我們?cè)谏厦娴男」?jié)中說明了單向加密的重要性,但有時(shí)我們可能需要在加密后,再把密碼數(shù)據(jù)還原成原來的數(shù)據(jù),幸運(yùn)的是,PHP通過Mcrypt擴(kuò)展庫的形式提供了這種可能性?! cryptMcrypt Unix |Win32 Mcrypt ,它包括有22種算法,其中就包括下面的幾種算法:Blowfish RC2 Safersk64 xteaCast256 RC4 Safersk128DES RC4iv SerpentEnigma Rijndael128 ThreewayGost Rijndael192 TripleDESLOKI97 Rijndael256 TwofishPanamaSaferplus Wake 安裝: 在標(biāo)準(zhǔn)的PHP軟件包中不包括Mcrypt,因此需要下載它,下載的地址為:ftp://。下載后,按照下面的方法進(jìn)行編譯,并把它擴(kuò)充在PHP中:下載Mcrypt軟件包。tar ./configure disableposixthreadsmakemake installcd to your PHP directory../configure withmcrypt=[dir] [otherconfigurationdirectives]makemake install 當(dāng)然了,根據(jù)你的要求和PHP安裝時(shí)與互聯(lián)網(wǎng)服務(wù)器軟件的關(guān)系,上面的過程可能需要作適當(dāng)?shù)男薷?。 使用Mcrypt Mcrypt的優(yōu)點(diǎn)不僅僅在于其提供的加密算法較多,還在于它可以對(duì)數(shù)據(jù)進(jìn)行加/解密處理,此外,它還提供了35種處理數(shù)據(jù)用的函數(shù)。盡管對(duì)這些函數(shù)進(jìn)行詳細(xì)介紹已經(jīng)超出了這篇文