PHP使用3DES进行加解密,加密模式为ECB

PHP中3DES加解密,加密模式为ECB,加密方法看下面代码

/**
 * Encrypt
 * @param $data
 * @return string
 * @DateTime 2019-02-22  10:28
 */
public function encrypt($data, $key)
{
    $encData = openssl_encrypt($data, 'DES-EDE3', $key, OPENSSL_RAW_DATA);
    $encData = base64_encode($encData);
    return $encData;
}

/**
 * Decrypt
 * @param $data
 * @return string
 * @DateTime 2019-02-22  10:30
 */
public function decrypt($data, $key)
{
    $data    = base64_decode($data);
    $decData = openssl_decrypt($data, 'DES-EDE3', $key, OPENSSL_RAW_DATA);
    return $decData;
}

为什么用openssl不用mcrypt?

ps:PHP7.1 后移除了 mcrypt ,而我的PHP版本7.2,所以要使用 openssl

为什么加密模式用DES-EDE3,而不是类似DES-EDE3-ECB这样的

ps:openssl不支持ECB模式

PHP使用3DES进行加解密,加密模式为ECB_第1张图片
图片原文来自segmentfault 3des 到底支不支持 ECB 模式?

你可能感兴趣的:(PHP)