代码之家  ›  专栏  ›  技术社区  ›  techno

PHP7中的三重DES加密替换

  •  0
  • techno  · 技术社区  · 3 年前

    我有以下用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。我如何替换此代码以获得相同的结果?

    1 回复  |  直到 3 年前
        1
  •  -1
  •   dave    3 年前

    基于 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的第一个链接上的视频也提供了更多信息。