private static function useOpenSslBacking()
    {
        if (!extension_loaded(self::BACKING_OPENSSL)) {
            throw new \RuntimeException(
                    'Can not use openssl backing, extension openssl not available'
            );
        }

        $key = md5(uniqid());
        $iv  = substr(md5(uniqid()), 0, openssl_cipher_iv_length('des'));
        self::$encrypt = function($value) use ($key, $iv) { return openssl_encrypt($value, 'DES', $key,  0, $iv); };
        self::$decrypt = function($value) use ($key, $iv) { return openssl_decrypt($value, 'DES', $key,  0, $iv); };
    }