'Plugin entry point, identify hashes in the HTTP response.
:param request: The HTTP request object.
:param response: The HTTP response object
:return: None'

def grep(self, request, response):

    if (not response.is_text_or_html()):
        return
    body = response.get_body()
    splitted_body = self._split_re.split(body)
    for possible_hash in splitted_body:
        if ((len(possible_hash) < 31) or (len(possible_hash) > 129)):
            return
        hash_type = self._get_hash_type(possible_hash)
        if (not hash_type):
            return
        possible_hash = possible_hash.lower()
        if self._has_hash_distribution(possible_hash):
            if ((possible_hash, response.get_url()) not in self._already_reported):
                desc = 'The    URL:    "%s"    returned    a    response    that    may    contain    a    "%s"    hash.    The    hash    string    is:    "%s".    This    is    uncommon    and    requires    human    verification.'
                desc = (desc % (response.get_url(), hash_type, possible_hash))
                i = Info('Hash    string    in    HTML    content', desc, response.id, self.get_name())
                i.set_url(response.get_url())
                i.add_to_highlight(possible_hash)
                self.kb_append(self, 'hash_analysis', i)
                self._already_reported.add((possible_hash, response.get_url()))
