import hashlib


def get_unique_key(source: str, model: str, params: dict) -> str:
    """Get a unique key for a message.

    This method hashes the string formed by concatenating the
    :attr:`source`, :attr:`model` and :attr:`param` attributes.
    SHA-256 algorithm is used.

    Args:
        source (:obj:`str`):
            ``source`` attribute in the JSON body of the request.
        model (:obj:`str`):
            ``model`` attribute in the JSON body of the request.
        params (:obj:`params`):
            ``params`` attribute in the JSON body of the request.

    Returns:
        :obj:`str`: The unique, SHA-256 ecrypted key.
    """

    return hashlib.sha256(
        ("".join([source, model, str(params)])).encode()
    ).hexdigest()