Esempio n. 1
0
def main(**kwargs):
    """Name That Hash - Instantly name the type of any hash!

    Github:\n
    https://github.com/hashpals/name-that-hash

    From the creator of RustScan and Ciphey. Follow me on Twitter!\n
    https://twitter.com/bee_sec_san

    Example usage:\n
        nth --text '5f4dcc3b5aa765d61d8327deb882cf99'\n
        nth --file hash\n
        nth --text '5f4dcc3b5aa765d61d8327deb882cf99' --greppable\n
        Note: Use single quotes ' as inverted commas " do not work well on Linux.\n
    """
    no_args = True
    for i in kwargs.values():
        if i:
            no_args = False
            break
    if no_args:
        with click.Context(main) as ctx:
            click.echo(main.get_help(ctx))
            exit(0)

    # Load the verbosity, so that we can start logging
    set_logging(kwargs)
    logging.debug(kwargs)

    # Banner handling
    if not kwargs["accessible"] and not kwargs["no_banner"] and not kwargs[
            "greppable"]:
        logging.info("Running the banner.")
        banner()

    # nth = the object which names the hash types
    nth = hash_namer.Name_That_Hash(hashes.prototypes)
    # prettifier print things :)
    pretty_printer = prettifier.Prettifier(kwargs)

    hashChecker = check_hashes.HashChecker(kwargs, nth)

    logging.debug(
        "Initialised the hash_info, nth, and pretty_printer objects.")

    output = []

    if kwargs["text"]:
        hashChecker.single_hash(kwargs["text"])
        output = hashChecker.output
    elif kwargs["file"]:
        hashChecker.file_input(kwargs["file"])
        output = hashChecker.output
    elif kwargs["extreme"]:
        output = hashChecker.find_all_hashes()

    if kwargs["greppable"]:
        print(pretty_printer.greppable_output(output))
    else:
        pretty_printer.pretty_print(output)
Esempio n. 2
0
def api_return_hashes_as_dict(chash: [str], args: dict = {}):
    """
    Returns the hashes as a Python dictionary
    """
    pretty_printer = prettifier.Prettifier(args, api=True)
    return pretty_printer.turn_hash_objs_into_dict(
        compute_hashes_for_api(chash, args))
Esempio n. 3
0
def api_return_hashes_as_dict(chash: List,
                              args: dict = {"popular_only": False}):
    """
    Returns hashes as a Python dictionary
    """
    pretty_printer = prettifier.Prettifier(args, api=True)
    return pretty_printer.turn_hash_objs_into_dict(
        compute_hashes_for_api(chash, args))
Esempio n. 4
0
def api_return_hashes_as_json(chash: [str], args: dict = {}):
    """
    Using name-that-hash as an API? Call this function!

    Given a list of hashes of strings
    return a list of json of all hashes in the same order as the input
    """
    pretty_printer = prettifier.Prettifier(args, api=True)
    return pretty_printer.greppable_output(compute_hashes_for_api(chash, args))
Esempio n. 5
0
def compute_hashes_for_api(chash: [str], args: dict = {}):
    # nth = the object which names the hash types

    nth = hash_namer.Name_That_Hash(hashes.prototypes)
    # prettifier print things :)
    pretty_printer = prettifier.Prettifier(args, api=True)
    hashChecker = check_hashes.HashChecker(args, nth)

    for i in chash:
        hashChecker.single_hash(i)
    return hashChecker.output
Esempio n. 6
0
def api_return_hashes_as_json(chash: [str], args: dict = {}):
    """
    Using name-that-hash as an API? Call this function!

    Given a list of hashes of strings
    return a list of json of all hashes in the same order as the input
    """
    # nth = the object which names the hash types

    nth = hash_namer.Name_That_Hash(hashes.prototypes)
    # prettifier print things :)
    pretty_printer = prettifier.Prettifier(args, api=True)
    hashChecker = check_hashes.HashChecker(args, nth)

    output = []
    for i in chash:
        hashChecker.single_hash(i)
        output.append(hashChecker.output)
    return pretty_printer.greppable_output(output)