哈希( Hash ):输入数据稍微变一点点,那么经过哈希运算得到的哈希值将会变得面目全非。
数据发布者对要校验的整个的数据文件做个哈希运算,把得到的哈希值公布在网上,使用者下载文件后再次运算一下哈希值,如果运算结果相等,就表示过程中文件没有任何的损坏。
哈希列表(Hash List):数据传输中会把比较大的一个文件,切成小的数据块,如果出现问题只需要重新下载这一小块就可以了。因此下载时需要从同时从多个机器上下载数据,其中很多机器是不稳定或不可信的,这就要求每个数据块都拥有自己的哈希值。在下载真正的数据之前,需要先下载一个哈希列表,那么如何保证每个都是正确的呢?
根哈希:把每个小块的哈希值拼到一起,然后对整个字符串再做一次哈希运算,最终的结果就是哈希列表的根哈希。因此如果能够保证从一个绝对可信的网站,拿到一个正确的根哈希,就可以用它来校验哈希列表中的每一个哈希的正确性。
**Merkle Tree:**以树的形式两两或多个进行哈希值计算,最后形成一个根节点。这样每一个上层节点都相当于是下面的根节点,可以对一些分支进行验证。如果根哈希一致,则数据相同,如果根哈希不一致,通过Merkle树可以快速检索到不一致的数据。
Merkle树
最新推荐文章于 2024-04-08 08:42:48 发布