Можно ли сравнить xxhash с прямым порядком байтов с хешем с прямым порядком байтов? - PullRequest
1 голос
/ 20 марта 2019

У меня есть набор файлов, которые были хэшированы как xxhash64 (little-endian) и сохранены в файле .mhl.

Тот же набор файлов был хэширован отдельной программой, как xxhash64be (big endian)и хранится в отдельном файле .mhl.

Я верю, что содержимое файлов было фактически идентичным во время хеширования, поскольку я генерировал файлы MHL один за другим.

Первый MHLфайл:

<hash>
    <file>SEB_3719.JPG</file>
    <size>6338411</size>
    <xxhash64>5a518dbf43939fe0</xxhash64>
    ...
</hash>

Второй файл MHL:

    <xxhash64be>e09f9343bf8d515a</xxhash64>

Можно ли использовать эти два хэша для сравнения друг с другом?Могут ли они быть преобразованы или отображены по-другому?

Или потребуется оригинальный файл?

1 Ответ

0 голосов
/ 20 марта 2019

Эти 2 хэша фактически идентичны.Но один сериализуется с использованием соглашения с прямым порядком байтов, а другой использует соглашение с прямым порядком байтов, поэтому инвертирует порядок байтов.Вы можете визуально проверить, что каждая пара шестнадцатеричных символов идентична, только в обратном порядке.

Официальный проект xxHash рекомендует соглашение с прямым порядком байтов, поскольку это естественный способ отображения 64-битного числа.Он даже предлагает набор канонических функций , который гарантирует, что представление байтов будет идентичным на любом компьютере, независимо от его порядкового номера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...