Php 如何将mcrypt_ecb()函数转换为mcrypt_generic()?

Php 如何将mcrypt_ecb()函数转换为mcrypt_generic()?,php,encryption,mcrypt,php-7,Php,Encryption,Mcrypt,Php 7,在PHP5.5中,折旧。我需要将我的Cryptogrpahy类转换为and,但是文档中关于如何使用TripleDES的细节很少。 在转换encrypt()和decrypt()函数方面的任何帮助都将不胜感激,这样我就可以为迁移到PHP7做好准备 class Crypt { private $_key = __CLASS__; function __construct($key = null) { is_null($key) || ($this->Key = $key); }

在PHP5.5中,折旧。我需要将我的Cryptogrpahy类转换为and,但是文档中关于如何使用TripleDES的细节很少。 在转换encrypt()和decrypt()函数方面的任何帮助都将不胜感激,这样我就可以为迁移到PHP7做好准备

class Crypt {
private $_key  = __CLASS__;
function __construct($key = null) {
    is_null($key)  || ($this->Key  = $key);
}

function __set($property, $value) {
    switch ($property) {
        case 'Key' : return $this->_setKey($value);
    }
}

function __get($property) {
    switch ($property) {
        case 'Key' : return $this->_key;
    }
}

public function encrypt($data) {
    $k = $this->_key;
    if (strlen($k) > 24)
        $k = substr($k, 0, 24);
    return base64_encode(base64_encode(mcrypt_ecb(MCRYPT_TripleDES, $k, $data, MCRYPT_ENCRYPT)));
}

public function decrypt($crypt) {
    $k = $this->_key;
    if (strlen($k) > 24)
        $k = substr($k, 0, 24);
    return trim(mcrypt_ecb(MCRYPT_TripleDES, $k, base64_decode(base64_decode($crypt)), MCRYPT_DECRYPT));
}

protected function _setKey($key) {
    $this->_key = (string) $key;
}
}
mcrypt\u加密(mcrypt\u三元组,$k,$data,mcrypt\u MODE\u modename)

mcrypt_decrypt(mcrypt_三元组,$k,base64_decode(base64_decode($crypt)),mcrypt_MODE_modename)


谢谢,这是我最需要的,但由于MCRYPT\u MODE\u modename,我收到了一大堆警告。如果我将其更改为MCRYPT_MODE_CBC,那么它需要一个初始化向量,这在原始代码中不存在。有线索吗?是的,我忘了写那个。。。在我提供的链接中,您拥有所有mcrypt模式。你应该把MCRYPT_MODE_modename改成你觉得最有用的模式这是我的问题。。基于我当前的代码,我不知道将MCRYPT_MODE_modename更改为什么!你在使用欧洲央行,你可以继续使用它。所以,你的模式应该是“MCRYPT_mode_ECB”。引用mcrypt_encrypt和mcrypt_decrypt,而不是泛型函数。