code: def prepare(session_data={}, #pylint: disable=dangerous-default-value
                  passphrase=None):
          
          if passphrase is None:
              passphrase = settings.DJAODJIN_SECRET_KEY
          encrypted = crypt.encrypt(
              json.dumps(session_data, cls=crypt.JSONEncoder),
              passphrase=passphrase,
              debug_stmt="encrypted_cookies.SessionStore.prepare")
          # b64encode will return `bytes` (Py3) but Django 2.0 is expecting
          # a `str` to add to the cookie header, otherwise it wraps those
          # `bytes` into a b'***' and adds that to the cookie.
          # Note that Django 1.11 will add those `bytes` to the cookie "as-is".
          if not isinstance(encrypted, six.string_types):
              as_text = encrypted.decode('ascii')
          else:
              as_text = encrypted
          return as_text
docs: Returns *session_dict* as a base64 encrypted json string.
  
          The full encrypted text is special crafted to be compatible
          with openssl. It can be decrypted with:
  
            $ echo _full_encypted_ | openssl aes-256-cbc -d -a -k _passphrase_ -p
            salt=...
            key=...
            iv=...
            _json_formatted_