今天想了解一下PHP的加密函数,但是需要mcrypt模块,就自己编译一遍,没想到如此复杂,所以记录下来,也好和大家分享
PHP模块mcrypt安装步骤:
1. 确认是否已安装libmcrypt
ldconfig -p | grep libmcrypt
如果没有安装:
下载地址:http://sourceforge.net/projects/mcrypt
可以同时下载libmcrypt 和 mcrypt
先安装libmcrypt, 默认安装目录为 /usr/local , PHP 手册建议–disable-posix-threads ,不知何故
./configure && make && make install
ldconfig
再安装mcrypt, 默认安装目录为 /usr/local
./configure –with-libmcrypt-prefix=/usr/local
2. 确认是否已安装mhash
ldconfig -p | grep mhash
如果没有安装:
下载地址:http://mhash.sourceforge.net/
./configure && make && make install
ldconfig
3. 现在可以安装mcrypt模块了
cd php-x.x.x/ext/mcrypt
./configure –with-mcrypt=/usr/local/ && make && make install
4. 修改php.ini 就可以了
测试一下:
<?php
// Designate string to be encrypted
$string = "Applied Cryptography, by Bruce Schneier, is a wonderful cryptography reference.";
$key = "Four score and twenty years ago"; // Encryption/decryption key
$cipher_alg = MCRYPT_TWOFISH;
$iv=mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);
echo "Original string: $string \n";
$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_CBC, $iv);
echo "Encrypted string: ".bin2hex($encrypted_string)."\n";
$decrypted_string = mcrypt_decrypt($cipher_alg, $key,
$encrypted_string, MCRYPT_MODE_CBC, $iv);
echo "Decrypted string: $decrypted_string\n";
?>