PHP7安装已废弃的对称加密扩展mcrypt记录

http://pecl.php.net/package/mcrypt

某PHP项目中需要使用对称加密 mcrypt 加密库,由于PHP7已经将此扩展移除到PECL,需要手动安装,现记录一下。

通过 apt-cache search 名称查找 mcrypt:

$ sudo apt-get update
$ sudo apt-cache search mcrypt
gnupg-utils - GNU privacy guard - utility programs
overlayroot - use an overlayfs on top of a read-only root filesystem
golang-github-xordataexchange-crypt - Store/retrieve encrypted configs from etcd or Consul (CLI tool)
libcryptx-perl - Perl module that provides a self-contained crypto toolkit
libgringotts-dev - development files for the gringotts data encapsulation library
libgringotts2 - gringotts data encapsulation and encryption library
libmcrypt-dev - De-/Encryption Library development files
libmcrypt4 - De-/Encryption Library
libmrtd-dev - Development files for libmrtd0
libmrtd0 - MRTD - Machine-readable travel document library
libtomcrypt-dev - static library, header files and documentation for libtomcrypt
libtomcrypt1 - public domain open source cryptographic toolkit
mcrypt - Replacement for old unix crypt(1)
php7.0-mcrypt - libmcrypt module for PHP
php5.6-mcrypt - libmcrypt module for PHP
php7.1-mcrypt - libmcrypt module for PHP

可以看到,目前三个版本的(php5.6-mcrypt,php7.0-mcrypt,php7.1-mcrypt )可以选择。

安装 mcrypt 扩展

本例中的环境是通过 Laravel Homestead 安装的,有多个PHP版本。

  • PHP7.0 安装 php7.0-mcrypt
sudo apt-get install php7.0-mcrypt
sudo apt-get install libmcrypt-dev;
sudo pecl install channel://pecl.php.net/mcrypt-1.0.0 
sudo echo 'extension=mcrypt.so'|sudo tee /etc/php/7.0/mods-available/mcrypt.ini
sudo ln -s /etc/php/7.0/mods-available/mcrypt.ini /etc/php/7.0/cli/conf.d/20-mcrypt.ini
sudo service php7.0-fpm restart
  • PHP7.2 安装 php7.1-mcrypt
sudo apt-get install mcrypt php7.1-mcrypt
sudo apt-get install libmcrypt-dev;
sudo pecl install channel://pecl.php.net/mcrypt-1.0.1 
sudo echo 'extension=mcrypt.so'|sudo tee /etc/php/7.2/mods-available/mcrypt.ini
sudo ln -s /etc/php/7.2/mods-available/mcrypt.ini /etc/php/7.2/cli/conf.d/20-mcrypt.ini
sudo service php7.2-fpm restart

由于使用的Homestead环境,并没有phpize文件进行动态编译,使用phpize,发现

通过 sudo apt install php7.2-dev 安装phpize

 

关于 mcrypt

本扩展是 mcrypt 库的接口,mcrypt 库提供了对多种块算法的支持, 包括:DES,TripleDES,Blowfish (默认), 3-WAY,SAFER-SK64,SAFER-SK128,TWOFISH,TEA,RC2 以及 GOST,并且支持 CBC,OFB,CFB 和 ECB 密码模式。 甚至,它还支持诸如 RC6 和 IDEA 这两种“非免费”的算法。 默认情况下,CFB/OFB 是 8 比特的。 (-- PHP手册)

mcrypt_encrypt — 使用给定参数加密明文
mcrypt_decrypt — 使用给定参数解密密文

参考链接:

PHP手册>函数参考>加密扩展(mcrypt)

PECL-Mcrypt

https://www.jianshu.com/p/4b7cdbf3bd6c

 

以下是centos下编译安装

升级 php 7.2 后,使用微信提供的加解密代码时,提示 call to undefined function mcrypt_module_open() ;

查阅相关资料知晓,mcrypt 扩展从 php 7.1.0 开始废弃;自 php 7.2.0 起,会移到 pecl。

安装 mcrypt 扩展

环境:centos 7

1.yum 安装依赖包:

yum install libmcrypt libmcrypt-devel mcrypt mhash

2.在 php 官网下载 mcrypt 包,php 扩展官网

  # wget  http://pecl.php.net/get/mcrypt-1.0.1.tgz

  # tar xf mcrypt-1.0.1.tgz

  # cd mcrypt-1.0.1

3.编译安装 mcrypt

进入到php安装目录

  # /usr/local/php/bin/phpize

  # ./configure --with-php-config=/usr/local/php/bin/php-config  && make && make install

4.在php.ini加上扩展即可

extension=mcrypt.so

5.重启 php-fpm

/etc/init.d/php-fpm restart #可以根据实际情况修改,你也可能是/usr/local/php/sbin/php-fpm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值