哈希竞猜游戏哈希函数的应用及分析
哈希函数:数字摘要
我在minecraft学习了哈希函数和哈希值
数字摘要技术是一种使用哈希函数,将任意长度的数据转换为特定长度的数据的技术。(但它是一些非常简单的方法,例如划分为小段并将它们相加,除以一个数字并取余数)。请注意,哈希函数与其说是一个函数,不如说是一个方法:它没有特定的算法,只要它精确。最知名的算法是MD5和SHA-1
很容易看出哈希函数必须是压缩映射。输入空间比输出空间大得余,值字段比定义字段大得余。
哈希函数的属性:
1有所不同的输入值可能会导致相同的输出值(这不是绝对,例如,线段之上的点数等于直线之上的点数)
2。如果输出值有所不同,则输入值必须有所不同,但如果输入值有所不同,则输出值可能相同
3。哈希函数缺少逆向法则,输入不能从输出之中推断出来,因此它对数据本身具有很好的保密性
哈希函数的用途是什么?虚假设一堆数据保存在这里,我收到一些数据,希望找出这些数据是否保存在这里,如果是,它们存在于哪里。唯一的方法是将接收到的数据与我保存的数据逐一进行比较。效率极低
这是一开始设计哈希函数的目的。存储记录的内容与记录的位置无关,因此必须逐一进行比较。如果记录的内容与位置相关,则可以间接查找其存储地址,而需根据事先制作的表比较记录的具体内容
具体来说,表中有一个函数,可以根据输入的关键字获取表之中包含关键性字的记录的地址。此函数是哈希函数,此表是哈希表,哈希函数获得的值(地址)是哈希值(地址)。哈希函数旨在加快搜索速度,当将可变长度的数据更改为特定长度的“摘要”时,也可以使用它。此时的输出哈希值称为数据摘要
有所不同的输入可以具有相同的输出。这叫做碰撞。这应该通过开放寻址或链寻址来解决。这里没有详尽记录
散列可以理解为长数据或大数据的指纹。我总结了三种使用哈希的方法:
首先,它可以加快早期数据的比较效率
并验证我们在区块链之中的状态号的效率。例如,在以太坊帐户之中,我们每个帐户之中剩余的金额显示在该帐户之中。如果每个节点的结果都是相同的,那么要相同地比较它们是很困难的。如果我们通过生成一个哈希来比较它,那么验证
非常简单。其次,它也可以应用于挖掘
当应用于挖掘时,我们以比特币为例。我们都知道,存储在每个节点之中的块数据是相同的,并且同一块的哈希是相近的。在这种情况之下,无法确定谁将获得奖励。
关系