可以将big-endian xxhash与little-endian哈希进行比较吗?

问题描述 投票:1回答:1

我有一组文件被散列为xxhash64(小端)并存储在.mhl文件中。

同一组文件由一个单独的程序进行散列,如xxhash64be(big endian)并存储在单独的.mhl文件中。

我相信在散列时文件的内容实际上是相同的,因为我一个接一个地生成MHL文件。

第一个MHL文件:

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

第二个MHL文件:

    <xxhash64be>e09f9343bf8d515a</xxhash64>

这两个哈希可以用来相互比较吗?它们可以以不同的方式转换或显示吗?

或者是否需要原始文件?

hash
1个回答
0
投票

这两个哈希实际上是相同的。但是一个使用小端约定序列化,另一个使用大端约定,因此反转字节顺序。您可以直观地检查每对十六进制是否相同,只是顺序相反。

官方的xxHash项目推荐使用big endian约定,因为它是显示64位数字的自然方式。它甚至提供了一组canonical functions,它保证了字节表示在任何机器上都是相同的,无论其字节顺序如何。

© www.soinside.com 2019 - 2024. All rights reserved.