PHP 7 中的三重 DES Mcrypt 替换

问题描述

我有以下用PHP编写的函数

function encrypt($string) {
        //Key
        $key = "key";

        //Encryption
        $cipher_alg = MCRYPT_TRIPLEDES;

        $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB),MCRYPT_RAND); 

        $encrypted_string = mcrypt_encrypt($cipher_alg,$key,$string,MCRYPT_MODE_ECB,$iv);
        return base64_encode($encrypted_string);
        return $encrypted_string;
    }

桌面应用程序使用相同的方案来解密生成的字符串。较新版本的 PHP 不支持 mcrypt。如何替换此代码以获得相同的结果?

解决方法

基于 this site,mcrypt 已从 PHP 7.2(我假设您正在使用)中删除,而是添加到 PECL。假设您使用的是 Ubuntu 或类似设备,现在安装它的过程是安装以下依赖项:

sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install php7.2-dev
sudo apt-get -y install libmcrypt-dev

然后通过PECL安装mcrypt:

sudo pecl install mcrypt-1.0.1

来自 TechRepublic 的第一个链接上的视频也包含更多信息。