Хэширование файла в SHA256 в python дает значение ha sh, отличное от других хэшированных файлов - PullRequest
0 голосов
/ 02 апреля 2020

Итак, у меня есть образец вредоносного ПО с именем data.tst, и я хэширую его с помощью python, используя модуль hashlib, например:

def get_hash(name, hash_type, chunk_size=65536):

    if hash_type.lower() == "sha256":
        h = hashlib.sha256()
    elif hash_type.lower() == "md5":
        h = hashlib.md5()
    elif hash_type.lower() == "sha1":
        h = hashlib.sha1()
    elif hash_type.lower() == "imphash":
        return pefile.PE(name).get_imphash()
    else:
        h = hashlib.sha256()

    with open(name) as data:
        block = data.read(chunk_size)
        while len(block) > 0:
            h.update(block)
            block = data.read(chunk_size)
    return h.hexdigest()

Когда создается ха sh, я получаю следующее значение с использованием SHA256: 1993322ebde08bdab69c0efbcc22ba4173e8ece04f35e1f70ca55ea7c90fbcd3. Однако образец был представлен ранее и хэширован до следующего значения: aa5f607076433086f6259131c4ba155b6f2587569f7fb0f21a0a4cdda225bd98 есть ли причина, по которой мои значения ha sh так сильно отличаются, есть ли что-то в моем коде выше, что я могу сделать лучше, чтобы получить правильный ха sh?

...