為PHP新增mcrypt擴充套件模組
PHP程式設計師們在編寫程式碼程式時,除了要保證程式碼的高效能之外,還有一點是非常重要的,那就是程式的安全性保障。PHP除了自帶的幾種加密函式外,還有功能更全面的PHP加密擴充套件庫Mcrypt和Mhash。
其中,Mcrypt擴充套件庫可以實現加密解密功能,就是既能將明文加密,也可以密文還原。PHP加密擴充套件庫Mcrypt的演算法和加密模式
Mcrypt庫支援20多種加密演算法和8種加密模式,具體可以通過函式mcrypt_list_algorithms()和mcrypt_list_modes()來顯示,結果如下:
Mcrypt支援的演算法有:cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes
Mcrypt支援的加密模式有:cbc cfb ctr ecb ncfb nofb ofb stream
這些演算法和模式在應用中要以常量來表示,寫的時候加上字首MCRYPT_和MCRYPT_來表示,如下面Mcrypt應用的例子:
DES演算法表示為MCRYPT_DES;
ECB模式表示為MCRYPT_MODE_ECB;
基本原理是:首先使mcrypt軟體能夠執行,然後安裝php擴充套件模組,並在php.ini配置。
這裡注意的是mcrypt軟體依賴libmcrypt和mhash兩個庫,所以安裝配置順序從右至左
一,下載安裝mcrypt
1.先去http://www.sourceforge.net下載Libmcrypt,mhash,mcrypt安裝包 ,下面是我找到的連結
Libmcrypt(libmcrypt-2.5.8.tar.gz ):
mcrypt(mcrypt-2.6.8.tar.gz ):
mhash(mhash-0.9.9.9.tar.gz ):
2 .先安裝Libmcrypt
#tar -zxvf libmcrypt-2.5.8.tar.gz
#cd libmcrypt-2.5.8
#./configure
#make
#make install 說明:libmcript預設安裝在/usr/local
3.安裝mhash
#tar -zxvf mhash-0.9.9.9.tar.gz
#cd mhash-0.9.9.9
#./configure
#make
#make install
4.安裝mcrypt
#tar -zxvf mcrypt-2.6.8.tar.gz
#cd mcrypt-2.6.8
#LD_LIBRARY_PATH=/usr/local/lib ./configure
#make
#make install
說明:由於在配置Mcrypt時,會找不到libmcrypt的連結庫,導致無法編譯,因為Libmcrypt的連結庫在/usr/local/資料夾下。因些在配置mcrypt時要加入LD_LIBRARY_PATH=/usr/local匯入鍵接庫
二, 安裝PHP擴充套件模組
1. 靜態編譯
在任意PHP檔案中加入函式 phpinfo(),即可取得目前PHP的配置
在這些配置後面新增需要加入的配置:’–with-mcrypt=/usr/local/include’
然後進入php原始碼目錄,執行這條完整的configure命令
配置完成,下面進行原始碼包的製作和安裝
make clean (一定需要)
make
make install
2. 動態載入
使用php的常見問題是:編譯php時忘記新增某擴充套件,後來想新增擴充套件,但是因為安裝php後又裝了一些東西如PEAR等,不想刪除目錄重灌,於是可以採用phpize。方法是:
要有與現有php完全相同的php壓縮包 。我用的是php-5.2.6.tar.gz。展開後進入裡面的ext/mcrypt目錄 (裡面是mcrypt的php擴充套件),然後執行/usr/local/php/bin/phpize。phpize是安裝php時安裝好的一個工具,如果你的機器沒有安裝phpize工具,那麼可能還是要make,make install php,僅僅為了得到phpize.
執行完後,會發現當前目錄下多了一些configure檔案,如果沒報錯,則根據提示執行
./configure –with-php-config=/usr/local/php/bin/php-config
注意要先確保/usr/local/php/bin/php-config存在。
make
make install
Php程式碼
./configure –with-php-config=/usr/local/php/bin/php-config
make install 之後系統會提示你mcrypt.so檔案所在的目錄。根據php.ini中指示的extension_dir指向的目錄中,將其複製過去。修改php.ini,在最後新增一句extension=mcrypt.so
最後重啟APACHE服務,萬事OK。
本文轉自 houzaicunsky 51CTO部落格,原文連結:http://blog.51cto.com/hzcsky/481402
相關文章
- 【PHP】Mcrypt 擴充套件模組安裝及使用PHP套件
- 新增php的memcached擴充套件模組PHP套件
- mac os 下php安裝mcrypt擴充套件MacPHP套件
- 新增php擴充套件PHP套件
- centos下為php新增gd擴充套件CentOSPHP套件
- Linux下為PHP新增FTP擴充套件LinuxPHPFTP套件
- laragon 新增 PHP_Redis 擴充套件GoPHPRedis套件
- php新增pcntl擴充套件(Linux)PHP套件Linux
- Laragon新增PHP_Redis擴充套件GoPHPRedis套件
- PHP新增zip&&curl擴充套件PHP套件
- php安裝filter擴充套件模組PHPFilter套件
- php擴充套件模組安裝-lampPHP套件LAMP
- 手動為php安裝memcached擴充套件模組薦PHP套件
- php安裝memcache、redis擴充套件模組PHPRedis套件
- 為PHP編譯imap擴充套件PHP編譯套件
- (PHP7核心剖析-11) 模組擴充套件PHP套件
- php擴充套件模組作用及中文註釋PHP套件
- [LAMP]php動態擴充套件模組安裝LAMPPHP套件
- CentOS 系統下 PHP 怎麼新增擴充套件?CentOSPHP套件
- 關於給apache新增PHP擴充套件的方法ApachePHP套件
- php-redis擴充套件模組安裝記錄PHPRedis套件
- php ubuntu 擴充套件PHPUbuntu套件
- PHP擴充套件開發就是一個自己的PHP擴充套件PHP套件
- WCF擴充套件:行為擴充套件Behavior Extension套件
- 開發php擴充套件PHP套件
- PHP 擴充套件安裝PHP套件
- PHP7擴充套件PHP套件
- 在 Homestead 環境下為 PHP 新增 Oracle 資料庫擴充套件(OCI)PHPOracle資料庫套件
- php7安裝redis擴充套件和memcache擴充套件PHPRedis套件
- 在Windows下為PHP安裝redis擴充套件WindowsPHPRedis套件
- 使用C++為node.js寫擴充套件模組C++Node.js套件
- PHP安裝redis擴充套件PHPRedis套件
- php amqp擴充套件安裝PHPMQ套件
- (MAC) PHP擴充套件安裝MacPHP套件
- Go開發PHP擴充套件GoPHP套件
- php mysql擴充套件安裝PHPMySql套件
- php7windowsredis擴充套件PHPWindowsRedis套件
- PHP 擴充套件 Mongo 與 MongoDBPHP套件MongoDB