protected function _decode($value, $encrypt, $key)
    {
        if (!$encrypt) {
            return $this->_explode($value);
        }
        $this->_checkCipher($encrypt);
        $prefix = 'Q2FrZQ==.';
        $prefixLength = strlen($prefix);

        if (strncmp($value, $prefix, $prefixLength) !== 0) {
            return '';
        }

        $value = base64_decode(substr($value, $prefixLength), true);

        if ($value === false || $value === '') {
            return '';
        }

        if ($key === null) {
            $key = $this->_getCookieEncryptionKey();
        }
        if ($encrypt === 'rijndael') {
            $value = Security::rijndael($value, $key, 'decrypt');
        }
        if ($encrypt === 'aes') {
            $value = Security::decrypt($value, $key);
        }

        if ($value === false) {
            return '';
        }

        return $this->_explode($value);
    }
protected function _decode($value, $encrypt, $key)
    {
        if (!$encrypt) {
            return $this->_explode($value);
        }
        $this->_checkCipher($encrypt);
        $prefix = 'Q2FrZQ==.';
        $prefixLength = strlen($prefix);

        if (strncmp($value, $prefix, $prefixLength) !== 0) {
            return '';
        }

        $value = base64_decode(substr($value, $prefixLength), true);

        if ($value === false || $value === '') {
            return '';
        }

        if ($key === null) {
            $key = $this->_getCookieEncryptionKey();
        }
        if ($encrypt === 'rijndael') {
            $value = Security::rijndael($value, $key, 'decrypt');
        }
        if ($encrypt === 'aes') {
            $value = Security::decrypt($value, $key);
        }

        if ($value === false) {
            return '';
        }

        return $this->_explode($value);
    }
protected function _decode ( $ value , $ encrypt , $ key ) { if ( ! $ encrypt ) { return $ this -> _explode ( $ value ) ; } $ this -> _checkCipher ( $ encrypt ) ; $ prefix = 'Q2FrZQ==.' ; $ prefixLength = strlen ( $ prefix ) ; if ( strncmp ( $ value , $ prefix , $ prefixLength ) !== 0 ) { return '' ; } $ value = base64_decode ( substr ( $ value , $ prefixLength ) , true ) ; if ( $ value === false || $ value === '' ) { return '' ; } if ( $ key === null ) { $ key = $ this -> _getCookieEncryptionKey ( ) ; } if ( $ encrypt === 'rijndael' ) { $ value = Security :: rijndael ( $ value , $ key , 'decrypt' ) ; } if ( $ encrypt === 'aes' ) { $ value = Security :: decrypt ( $ value , $ key ) ; } if ( $ value === false ) { return '' ; } return $ this -> _explode ( $ value ) ; }
Decodes and decrypts a single value.

@param string $value The value to decode & decrypt.
@param string|false $encrypt The encryption cipher to use.
@param string|null $key Used as the security salt if specified.
@return string|array Decoded values.
Decodes and decrypts a single value .