// 安装 MCrypt 包 $ wget http://downloads.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz?use_mirror=cdnetworks-kr-2 $ tar -xzf libmcrypt-2.5.8.tar.gz $ cd libmcrypt-2.5.8 $ ./configure --prefix=/home/app/libmcrypt-2.5.8 $ make $ sudo make install // 编译 php $ wget http://cn.php.net/get/php-5.2.13.tar.gz/from/this/mirror $ tar -xzf php-5.2.13.tar.gz $ cd php-5.2.13/ext/mcrypt/ $ /home/php-5.2.0/bin/phpize $ ./configure --with-php-config=/home/php-5.2.0/bin/php-config --with-mcrypt=/home/app/libmcrypt-2.5.8/ $ sudo mkdir -p /home/php5/lib/php/extensions/no-debug-non-zts-20060613 $ sudo cp -p modules/mcrypt.so /home/php5/lib/php/extensions/no-debug-non-zts-20060613/
测试:
dl("mcrypt.so");
$string = "test@abc.com";
$stuff="String to enc/enc/dec/dec =,=,";
$key="XiTo74dOO09N48YeUmuvbL0E";
$iv = mcrypt_create_iv (mcrypt_get_block_size (MCRYPT_TripleDES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM);
$iv64=base64_encode($iv);
echo "iv:".base64_encode($iv);
echo "
\n";
$key=base64_decode("U42/zc3r6zC2Ok11BqO+lA==");
$iv=base64_decode("xTXaC2FQEGWOVBqPIipt1A==");
//$enc=mcrypt_cbc (MCRYPT_TripleDES, $key, $string, MCRYPT_ENCRYPT, $iv);
//MCRYPT_RIJNDAEL_128
$enc=mcrypt_cbc (MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_ENCRYPT, $iv);
$ret=base64_encode($enc);
echo "encrypt:".$ret;
echo "
\n";
$string=$ret;
$string = trim(base64_decode($string));
//$dec = mcrypt_cbc (MCRYPT_TripleDES, $key, $string, MCRYPT_DECRYPT, $iv);
$dec = mcrypt_cbc (MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_DECRYPT, $iv);
echo "decrypt:".$dec;
