為PHP新增mcrypt擴充套件模組

科技小能手發表於2017-11-15

PHP程式設計師們在編寫程式碼程式時,除了要保證程式碼的高效能之外,還有一點是非常重要的,那就是程式的安全性保障。PHP除了自帶的幾種加密函式外,還有功能更全面的PHP加密擴充套件庫McryptMhash

其中,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


相關文章