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;
    }
  1. 为什么用openssl不用mcrypt?

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

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

    ps:openssl不支持ECB模式

img

图片原文来自segmentfault 3des 到底支不支持 ECB 模式?
所有评论
加载评论 ...
发表评论