《PHP應(yīng)用:php基于mcrypt的加密解密實(shí)例》要點(diǎn):
本文介紹了PHP應(yīng)用:php基于mcrypt的加密解密實(shí)例,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP教程本文實(shí)例講述了php基于mcrypt實(shí)現(xiàn)加密解密的辦法.分享給大家供大家參考.具體實(shí)現(xiàn)辦法如下:
PHP教程PHP中自帶了相當(dāng)多的加密的方法,這里我們來(lái)看一下mcrypt擴(kuò)展的使用方式.也是在工作中需要用這個(gè)東西加密拜訪用戶的Cookie的值,認(rèn)真的學(xué)習(xí)了這個(gè)方面的內(nèi)容.
PHP教程1.簡(jiǎn)介
PHP教程Mcrypt是PHP的一個(gè)擴(kuò)展,完成了常用加密算法的封裝.其實(shí)該擴(kuò)展是對(duì)mcrypt標(biāo)準(zhǔn)類庫(kù)的封裝,mcrypt完成了相當(dāng)多的常用加密算法,如DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 和 GOST加密算法,并且提供了CBC、OFB、CFB 和 ECB 四種塊加密的模型.
PHP教程2.安裝和使用
PHP教程要使用該擴(kuò)展,必須首先安裝mcrypt標(biāo)準(zhǔn)類庫(kù),可以在http://mcrypt.sourceforge.net 下載.該擴(kuò)展的編譯和安裝方式和常規(guī)的php擴(kuò)展相同,不在詳細(xì)說(shuō)明了.
PHP教程3.四種塊加密模型
PHP教程Mcrypt支持四種塊加密模型,簡(jiǎn)要說(shuō)明如下:
PHP教程①. MCRYPT_MODE_ECB(electronic codebook) 適合對(duì)小數(shù)量隨機(jī)數(shù)據(jù)的加密,比如加密用戶的登錄暗碼之類的.
PHP教程②. MCRYPT_MODE_CBC (cipher block chaining) 適合加密平安等級(jí)較高的重要文件類型.
PHP教程③. MCRYPT_MODE_CFB (cipher feedback) 適合于需要對(duì)數(shù)據(jù)流的每一個(gè)字節(jié)進(jìn)行加密的場(chǎng)合.
PHP教程④. MCRYPT_MODE_OFB (output feedback, in 8bit) 和CFB模式兼容,但比CFB模式更平安.CFB模式會(huì)引起加密的錯(cuò)誤擴(kuò)散,如果一個(gè)byte出錯(cuò),則其后續(xù)的所有byte都會(huì)出錯(cuò).OFB模式則不會(huì)有此問(wèn)題.但該模式的平安度不是很高,不建議使用.
PHP教程⑤. MCRYPT_MODE_NOFB (output feedback, in nbit) 和OFB兼容,由于采用了塊操作算法,平安度更高.
PHP教程⑥. MCRYPT_MODE_STREAM 是為了WAKE或者RC4等流加密算法提供的額外模型.
PHP教程NOFB和STREAM僅當(dāng)mycrypt的版本號(hào)大于等于libmcrypt-2.4.x才有效.(現(xiàn)在基本上都是大于這個(gè)版本了,libmcrypt的最新主版本已經(jīng)到4了)
PHP教程4.查看支持的算法和模型
PHP教程①. mcrypt_list_modes()列出當(dāng)前環(huán)境支持的模型
PHP教程②. mcrypt_list_algorithms()列出當(dāng)前環(huán)境支持的算法
PHP教程如命令行執(zhí)行:
PHP教程5.如何使用
PHP教程示例1:
PHP教程最簡(jiǎn)單的方式如示例1中所示,該辦法表明對(duì)$input使用3DES的算法進(jìn)行加密,加密密鑰是$key.不過(guò)這中直接調(diào)用的辦法已經(jīng)不被官方推薦使用,也建議大家在開發(fā)中不要使用此種方式,不一定哪天該辦法就不能用了.在php5下使用此種方式調(diào)用時(shí),能看到一條warning信息,提示“PHP Warning: attempt to use an empty IV, which is NOT recommend”.
PHP教程官方推薦的使用方式如示例2所示
PHP教程示例2:
PHP教程解密的過(guò)程和加密是基本相同,只要把mcrypt_generic($td, $input)替換成mdecrypt_generic($td, $input)就可以了,其它部分完全相同.當(dāng)然,對(duì)于3des這種對(duì)稱加密算法而言,加密、解密所用的key是必須完全相同的.
PHP教程6. 有關(guān)IV
PHP教程不是所有的模型中都需要IV. CFB和OFB是必須有IV, CBC和EBC則是可選的.對(duì)于必選IV的模式來(lái)說(shuō),其加密和解密的IV的值必須完全相同,CBC和EBC則無(wú)此要求.可以相同也可以不同,沒(méi)什么關(guān)系.
PHP教程7.一個(gè)簡(jiǎn)單功能的加密解密類
PHP教程PS:關(guān)于加密技術(shù),本站還提供了如下加密工具供大家參考使用:
PHP教程希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所贊助.
歡迎參與《PHP應(yīng)用:php基于mcrypt的加密解密實(shí)例》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/14413.html